public static void ReloadAllSceneHierarchies() { foreach (var window in SceneHierarchyWindow.GetAllSceneHierarchyWindows()) { window.sceneHierarchy.ReloadData(); } }
static void HandleSelectionWhenSwithingToNewPrefabMode(GameObject prefabContentsRoot, UInt64 previousFileID) { GameObject newSelection = null; if (previousFileID != 0) { newSelection = FindFirstGameObjectThatMatchesFileID(prefabContentsRoot.transform, previousFileID, true); } if (newSelection == null) { newSelection = prefabContentsRoot; } Selection.activeGameObject = newSelection; // For Prefab Mode we restore the last expanded tree view state for the opened Prefab. For usability // if a child GameObject on the Prefab Instance is selected when entering the Prefab Asset Mode we select the corresponding // child GameObject in the Asset. Here we ensure that selction is revealed and framed in the Scene hierarchy. if (newSelection != prefabContentsRoot) { foreach (SceneHierarchyWindow shw in SceneHierarchyWindow.GetAllSceneHierarchyWindows()) { shw.FrameObject(newSelection.GetInstanceID(), false); } } }
internal override void SyncSceneHierarchyToStage(SceneHierarchyWindow sceneHierarchyWindow) { var sceneHierarchy = sceneHierarchyWindow.sceneHierarchy; sceneHierarchy.customScenes = null; sceneHierarchy.customParentForNewGameObjects = null; sceneHierarchy.SetCustomDragHandler(null); }
internal override void SaveHierarchyState(SceneHierarchyWindow hierarchyWindow) { if (!isValid) { return; } string key = StageUtility.CreateWindowAndStageIdentifier(hierarchyWindow.windowGUID, this); var state = s_StateCache.GetState(key); if (state == null) { state = new MainStageHierarchyState(); } state.SaveStateFromHierarchy(hierarchyWindow, this); s_StateCache.SetState(key, state); }
internal override void LoadHierarchyState(SceneHierarchyWindow hierarchy) { if (!isValid) { return; } var state = GetStoredHierarchyState(hierarchy); if (state != null) { state.LoadStateIntoHierarchy(hierarchy, this); } else { OnFirstTimeOpenStageInSceneHierachyWindow(hierarchy); } }
MainStageHierarchyState GetStoredHierarchyState(SceneHierarchyWindow hierarchyWindow) { string key = StageUtility.CreateWindowAndStageIdentifier(hierarchyWindow.windowGUID, this); return(s_StateCache.GetState(key)); }
public static void Repaint() { SceneHierarchyWindow.Repaint(); }
public static void Show() { SceneHierarchyWindow.Show(); }
internal virtual void OnFirstTimeOpenStageInSceneHierachyWindow(SceneHierarchyWindow sceneHierarchyWindow) { }
internal virtual void LoadHierarchyState(SceneHierarchyWindow hierarchyWindow) { }
internal abstract void SyncSceneHierarchyToStage(SceneHierarchyWindow sceneHierarchyWindow);
internal override void SyncSceneHierarchyToStage(SceneHierarchyWindow sceneHierarchyWindow) { var sceneHierarchy = sceneHierarchyWindow.sceneHierarchy; sceneHierarchy.customScenes = new[] { scene }; }