/// <summary> /// Deserialize /// </summary> /// <param name="binaryReader">BinaryReader</param> public virtual void Deserialize(BinaryReader binaryReader) { name = binaryReader.ReadString(); mHandle = binaryReader.ReadInt32(); rootCount = binaryReader.ReadInt32(); var len = binaryReader.ReadInt32(); if (len != -1) { List <CameraKun> cameraKuns = new List <CameraKun>(); mGameObjectKuns = new GameObjectKun[len]; for (var i = 0; i < len; i++) { mGameObjectKuns[i] = new GameObjectKun(); mGameObjectKuns[i].Deserialize(binaryReader); var cameraKun = mGameObjectKuns[i].GetComponentKun <CameraKun>(); if (cameraKun != null) { cameraKuns.Add(cameraKun); } } if (cameraKuns.Count > 0) { CameraKun.allCameraList = cameraKuns; } else { CameraKun.allCameraList = null; } } }
public void Writeback(GameObjectKun gameObjectKun) { gameObjectKun.activeSelf = isActive; gameObjectKun.name = name; gameObjectKun.isStatic = isStatic; gameObjectKun.tag = tag; gameObjectKun.layer = layer; }
/// <summary> /// /// </summary> /// <param name="bytes"></param> public void OnMessageEventPush(BinaryReader binaryReader) { var gameObjectKun = new GameObjectKun(); gameObjectKun.Deserialize(binaryReader); foreach (var obj in UnityEngine.SceneManagement.SceneManager.GetActiveScene().GetRootGameObjects()) { var go = FindGameObjectInChildren(obj, gameObjectKun.instanceID); if (go != null) { gameObjectKun.WriteBack(go); return; } } }
public void Set(GameObjectKun gameObjectKun) { if (gameObjectKun == null) { isDraw = false; } else { isDraw = true; isActive = gameObjectKun.activeSelf; name = gameObjectKun.name; isStatic = gameObjectKun.isStatic; tag = gameObjectKun.tag; layer = gameObjectKun.layer; } }
/// <summary> /// Deserialize /// </summary> /// <param name="binaryReader">BinaryReader</param> public virtual void Deserialize(BinaryReader binaryReader) { name = binaryReader.ReadString(); rootCount = binaryReader.ReadInt32(); var len = binaryReader.ReadInt32(); if (len != -1) { mGameObjectKuns = new GameObjectKun[len]; for (var i = 0; i < len; i++) { mGameObjectKuns[i] = new GameObjectKun(); mGameObjectKuns[i].Deserialize(binaryReader); } } }
/// <summary> /// TreeViewを再帰的に構築する /// </summary> /// <param name="go">起点となるGameObjectKun</param> /// <param name="depth">起点の深さ</param> /// <returns>GameObjectKunのTreeViewIten</returns> TreeViewItem MakeTreeViewRecursive(GameObjectKun go, int depth) { var treeViewItem = new TreeViewItem(id: go.instanceID, depth: depth, displayName: go.name); var children = sceneKun.gameObjectKuns.Where((q) => q.transformKun.parentInstanceID == go.transformKun.instanceID); if (children != null && children.Count() != 0) { treeViewItem.children = new List <TreeViewItem>(); foreach (var child in children) { var tvi = MakeTreeViewRecursive(child, depth + 1); tvi.parent = treeViewItem; treeViewItem.children.Add(tvi); } } return(treeViewItem); }
/// <summary> /// /// </summary> /// <param name="go"></param> /// <param name="list"></param> private void AddGameObjectKunInChildren(GameObject go, List <GameObjectKun> list) { if (go == null || list == null) { return; } var gk = new GameObjectKun(go); list.Add(gk); if (go.transform != null) { for (var i = 0; i < go.transform.childCount; i++) { AddGameObjectKunInChildren(go.transform.GetChild(i).gameObject, list); } } }
void BuildComponentView(GameObjectKun gameObjectKun) { componentViews.Clear(); if (gameObjectKun != null) { m_selectGameObujectKunID = gameObjectKun.instanceID; for (var i = 0; i < gameObjectKun.componentKuns.Length; i++) { var type = ComponentView.GetComponentViewSyetemType(gameObjectKun.componentKunTypes[i]); var componentView = System.Activator.CreateInstance(type) as ComponentView; componentView.SetComponentKun(gameObjectKun.componentKuns[i]); componentViews.Add(componentView); } } else { m_selectGameObujectKunID = -1; } }
/// <summary> /// /// </summary> /// <param name="bytes"></param> public void OnMessageEventPush(BinaryReader binaryReader) { var gameObjectKun = new GameObjectKun(); gameObjectKun.Deserialize(binaryReader); for (var i = 0; i < SceneManager.sceneCount; i++) { var scene = SceneManager.GetSceneAt(i); foreach (var obj in scene.GetRootGameObjects()) { var go = FindGameObjectInChildren(obj, gameObjectKun.instanceID); if (go != null) { gameObjectKun.WriteBack(go); return; } } } }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> public override bool Equals(object obj) { var other = obj as SceneKun; if (other == null) { return(false); } if (!string.Equals(name, other.name)) { return(false); } if (this.handle != other.handle) { return(false); } if (!int.Equals(rootCount, other.rootCount)) { return(false); } if (mGameObjectKuns != null) { if (other.mGameObjectKuns == null) { return(false); } if (mGameObjectKuns.Length != other.mGameObjectKuns.Length) { return(false); } for (var i = 0; i < mGameObjectKuns.Length; i++) { if (!GameObjectKun.Equals(mGameObjectKuns[i], other.mGameObjectKuns[i])) { return(false); } } } return(true); }
public void MoveGameObjectToScene(GameObjectKun gameObjectKun, SceneKun sceneKun) { // RootGameObjectの場合、元のSceneから削除する for (var i = 0; i < sceneKuns.Length; i++) { var list = new List <GameObjectKun>(sceneKuns[i].gameObjectKuns); if (list.Contains(gameObjectKun)) { list.Remove(gameObjectKun); sceneKuns[i].gameObjectKuns = list.ToArray(); break; } } // 移動先のSceneへ追加 { var list = new List <GameObjectKun>(sceneKun.gameObjectKuns); list.Add(gameObjectKun); sceneKun.gameObjectKuns = list.ToArray(); gameObjectKun.transformKun.sceneHn = sceneKun.handle; } }