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);
                }
            }
        }
Beispiel #3
0
        internal override void SyncSceneHierarchyToStage(SceneHierarchyWindow sceneHierarchyWindow)
        {
            var sceneHierarchy = sceneHierarchyWindow.sceneHierarchy;

            sceneHierarchy.customScenes = null;
            sceneHierarchy.customParentForNewGameObjects = null;
            sceneHierarchy.SetCustomDragHandler(null);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        internal override void LoadHierarchyState(SceneHierarchyWindow hierarchy)
        {
            if (!isValid)
            {
                return;
            }

            var state = GetStoredHierarchyState(hierarchy);

            if (state != null)
            {
                state.LoadStateIntoHierarchy(hierarchy, this);
            }
            else
            {
                OnFirstTimeOpenStageInSceneHierachyWindow(hierarchy);
            }
        }
Beispiel #6
0
        MainStageHierarchyState GetStoredHierarchyState(SceneHierarchyWindow hierarchyWindow)
        {
            string key = StageUtility.CreateWindowAndStageIdentifier(hierarchyWindow.windowGUID, this);

            return(s_StateCache.GetState(key));
        }
Beispiel #7
0
 public static void Repaint()
 {
     SceneHierarchyWindow.Repaint();
 }
Beispiel #8
0
 public static void Show()
 {
     SceneHierarchyWindow.Show();
 }
Beispiel #9
0
 internal virtual void OnFirstTimeOpenStageInSceneHierachyWindow(SceneHierarchyWindow sceneHierarchyWindow)
 {
 }
Beispiel #10
0
 internal virtual void LoadHierarchyState(SceneHierarchyWindow hierarchyWindow)
 {
 }
Beispiel #11
0
 internal abstract void SyncSceneHierarchyToStage(SceneHierarchyWindow sceneHierarchyWindow);
Beispiel #12
0
        internal override void SyncSceneHierarchyToStage(SceneHierarchyWindow sceneHierarchyWindow)
        {
            var sceneHierarchy = sceneHierarchyWindow.sceneHierarchy;

            sceneHierarchy.customScenes = new[] { scene };
        }