コード例 #1
0
        public void ShowAll()
        {
            Undo.RecordObject(SceneVisibilityState.GetInstance(), "Show All");
            Stage stage = StageNavigationManager.instance.currentStage;

            for (int i = 0; i < stage.sceneCount; i++)
            {
                Show(stage.GetSceneAt(i), false);
            }
        }
コード例 #2
0
        public void Show(Scene scene)
        {
            if (!scene.IsValid())
            {
                return;
            }

            Undo.RecordObject(SceneVisibilityState.GetInstance(), "Show Scene");
            Show(scene, true);
        }
コード例 #3
0
        public void DisablePicking(Scene scene)
        {
            if (!scene.IsValid())
            {
                return;
            }

            Undo.RecordObject(SceneVisibilityState.GetInstance(), "Disable Picking Scene");
            DisablePicking(scene, true);
        }
コード例 #4
0
        public void ExitIsolation()
        {
            Undo.RecordObject(SceneVisibilityState.GetInstance(), "Exit Isolation");

            if (IsCurrentStageIsolated()) //already isolated
            {
                RevertIsolationCurrentStage();
                VisibilityChanged();
            }
        }
コード例 #5
0
        private static void ToggleSelectionPicking(bool includeChildren)
        {
            bool shouldDisablePicking = true;

            foreach (var gameObject in Selection.gameObjects)
            {
                if (!instance.IsPickingDisabled(gameObject))
                {
                    break;
                }

                shouldDisablePicking = false;
            }

            instance.m_SelectedScenes.Clear();

            if (shouldDisablePicking)
            {
                SceneHierarchyWindow.lastInteractedHierarchyWindow.GetSelectedScenes(instance.m_SelectedScenes);

                foreach (var scene in instance.m_SelectedScenes)
                {
                    if (!instance.IsPickingDisabled(scene))
                    {
                        break;
                    }

                    shouldDisablePicking = false;
                }
            }

            var undoName = includeChildren ? "Toggle Selection And Descendants Picking" : "Toggle Selection Pickable";

            Undo.RecordObject(SceneVisibilityState.GetInstance(), undoName);
            SceneVisibilityState.SetGameObjectsPickingDisabled(Selection.gameObjects, shouldDisablePicking, includeChildren);

            foreach (var scene in instance.m_SelectedScenes)
            {
                if (shouldDisablePicking)
                {
                    instance.DisablePicking(scene);
                }
                else
                {
                    instance.EnablePicking(scene);
                }
            }

            EditorApplication.RepaintHierarchyWindow();
        }
コード例 #6
0
 private static void EditorSceneManagerOnSceneOpened(Scene scene, OpenSceneMode mode)
 {
     if (mode == OpenSceneMode.Single)
     {
         SceneVisibilityState.isolation = false;
     }
     if (mode == OpenSceneMode.Additive)
     {
         //make sure added scenes are isolated when opened if main stage is isolated
         if (StageNavigationManager.instance.currentStage is MainStage)
         {
             Undo.ClearUndo(SceneVisibilityState.GetInstance());
         }
     }
 }
コード例 #7
0
 public void ShowAll()
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Show All");
     if (StageNavigationManager.instance.currentItem.isPrefabStage)
     {
         SceneVisibilityState.ShowScene(StageNavigationManager.instance.GetCurrentPrefabStage().scene);
     }
     else
     {
         for (int i = 0; i < SceneManager.sceneCount; i++)
         {
             Show(SceneManager.GetSceneAt(i), false);
         }
     }
 }
コード例 #8
0
        public void EnablePicking(Scene scene)
        {
            if (!scene.IsValid())
            {
                return;
            }

            if (!scene.isLoaded)
            {
                return;
            }

            Undo.RecordObject(SceneVisibilityState.GetInstance(), "Enable Picking Scene");
            EnablePickingNoUndo(scene);
        }
コード例 #9
0
        public void Hide(Scene scene)
        {
            if (!scene.IsValid())
            {
                return;
            }

            if (!scene.isLoaded)
            {
                return;
            }

            Undo.RecordObject(SceneVisibilityState.GetInstance(), "Hide Scene");
            HideNoUndo(scene);
        }
コード例 #10
0
 public void EnableAllPicking()
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Enable All Picking");
     if (StageNavigationManager.instance.currentItem.isPrefabStage)
     {
         SceneVisibilityState.EnablePicking(StageNavigationManager.instance.GetCurrentPrefabStage().scene);
     }
     else
     {
         for (int i = 0; i < SceneManager.sceneCount; i++)
         {
             EnablePickingNoUndo(SceneManager.GetSceneAt(i));
         }
     }
 }
コード例 #11
0
        internal static void ToggleSelectionPickable()
        {
            bool shouldDisablePicking = true;

            foreach (var gameObject in Selection.gameObjects)
            {
                if (!instance.IsPickingDisabled(gameObject))
                {
                    break;
                }

                shouldDisablePicking = false;
            }


            instance.m_SelectedScenes.Clear();

            if (shouldDisablePicking)
            {
                SceneHierarchyWindow.lastInteractedHierarchyWindow.GetSelectedScenes(instance.m_SelectedScenes);

                foreach (var scene in instance.m_SelectedScenes)
                {
                    if (!instance.IsPickingDisabled(scene))
                    {
                        break;
                    }

                    shouldDisablePicking = false;
                }
            }

            Undo.RecordObject(SceneVisibilityState.GetInstance(), "Toggle Selection Pickable");
            SceneVisibilityState.SetGameObjectsPickingDisabled(Selection.gameObjects, shouldDisablePicking, false);


            foreach (var scene in instance.m_SelectedScenes)
            {
                if (shouldDisablePicking)
                {
                    instance.DisablePicking(scene);
                }
                else
                {
                    instance.EnablePicking(scene);
                }
            }
        }
コード例 #12
0
        private static void ToggleSelectionAndDescendantsVisibility()
        {
            bool shouldHide = true;

            foreach (var gameObject in Selection.gameObjects)
            {
                if (!instance.IsHidden(gameObject))
                {
                    break;
                }

                shouldHide = false;
            }

            instance.m_SelectedScenes.Clear();

            if (shouldHide)
            {
                SceneHierarchyWindow.lastInteractedHierarchyWindow.GetSelectedScenes(instance.m_SelectedScenes);

                foreach (var scene in instance.m_SelectedScenes)
                {
                    if (!instance.IsHidden(scene))
                    {
                        break;
                    }

                    shouldHide = false;
                }
            }

            Undo.RecordObject(SceneVisibilityState.GetInstance(), "Toggle Selection And Descendants Visibility");
            SceneVisibilityState.SetGameObjectsHidden(Selection.gameObjects, shouldHide, true);

            foreach (var scene in instance.m_SelectedScenes)
            {
                if (shouldHide)
                {
                    instance.Hide(scene);
                }
                else
                {
                    instance.Show(scene);
                }
            }
        }
コード例 #13
0
 private static void EditorSceneManagerOnSceneOpened(Scene scene, OpenSceneMode mode)
 {
     if (mode == OpenSceneMode.Single)
     {
         SceneVisibilityState.isolation = false;
     }
     if (mode == OpenSceneMode.Additive)
     {
         //make sure added scenes are isolated when opened if main stage is isolated
         if (!StageNavigationManager.instance.currentItem.isPrefabStage)
         {
             Undo.ClearUndo(SceneVisibilityState.GetInstance());
         }
     }
     instance.VisibilityChanged();
     instance.PickableContentChanged();
 }
コード例 #14
0
 private static void ToggleSelectionAndDescendantsPicking()
 {
     if (Selection.gameObjects.Length > 0)
     {
         bool shouldDisablePicking = true;
         foreach (var gameObject in Selection.gameObjects)
         {
             if (!instance.IsPickingDisabled(gameObject))
             {
                 break;
             }
             shouldDisablePicking = false;
         }
         Undo.RecordObject(SceneVisibilityState.GetInstance(), "Toggle Selection And Descendants Picking");
         SceneVisibilityState.SetGameObjectsPickingDisabled(Selection.gameObjects, shouldDisablePicking, true);
     }
 }
コード例 #15
0
        public void EnableAllPicking()
        {
            Undo.RecordObject(SceneVisibilityState.GetInstance(), "Enable All Picking");
            PreviewSceneStage previewSceneStage = StageNavigationManager.instance.currentStage as PreviewSceneStage;

            if (previewSceneStage != null)
            {
                SceneVisibilityState.EnablePicking(previewSceneStage.scene);
            }
            else
            {
                for (int i = 0; i < SceneManager.sceneCount; i++)
                {
                    EnablePickingNoUndo(SceneManager.GetSceneAt(i));
                }
            }
        }
コード例 #16
0
        private static void ToggleSelectionAndDescendantsVisibility()
        {
            if (Selection.gameObjects.Length > 0)
            {
                bool shouldHide = true;
                foreach (var gameObject in Selection.gameObjects)
                {
                    if (!instance.IsHidden(gameObject))
                    {
                        break;
                    }

                    shouldHide = false;
                }
                Undo.RecordObject(SceneVisibilityState.GetInstance(), "Toggle Selection And Descendants Visibility");
                SceneVisibilityState.SetGameObjectsHidden(Selection.gameObjects, shouldHide, true);
            }
        }
コード例 #17
0
        internal static void ToggleSelectionPickable()
        {
            if (Selection.gameObjects.Length > 0)
            {
                bool shouldHide = true;
                foreach (var gameObject in Selection.gameObjects)
                {
                    if (!instance.IsPickingDisabled(gameObject))
                    {
                        break;
                    }

                    shouldHide = false;
                }
                Undo.RecordObject(SceneVisibilityState.GetInstance(), "Toggle Selection Pickable");
                SceneVisibilityState.SetGameObjectsPickingDisabled(Selection.gameObjects, shouldHide, false);
            }
        }
コード例 #18
0
        internal void ToggleIsolateSelection()
        {
            Undo.RecordObject(SceneVisibilityState.GetInstance(), "Toggle Isolation on Selection");

            if (!IsCurrentStageIsolated())
            {
                IsolateCurrentStage();
                HideAllNoUndo();

                if (Selection.gameObjects.Length > 0)
                {
                    SceneVisibilityState.SetGameObjectsHidden(Selection.gameObjects, false, false);
                }
            }
            else
            {
                RevertIsolationCurrentStage();
            }
        }
コード例 #19
0
 private static void EditorSceneManagerOnSceneOpened(Scene scene, OpenSceneMode mode)
 {
     if (mode == OpenSceneMode.Single)
     {
         //force out of isolation when loading single
         SceneVisibilityState.mainStageIsolated = false;
     }
     if (mode == OpenSceneMode.Additive)
     {
         //make sure added scenes are isolated when opened if main stage is isolated
         if (!StageNavigationManager.instance.currentItem.isPrefabStage)
         {
             Undo.ClearUndo(SceneVisibilityState.GetInstance());
             if (SceneVisibilityState.mainStageIsolated)
             {
                 SceneVisibilityState.SetSceneIsolation(scene, true);
             }
         }
     }
     instance.VisibilityChanged();
 }
コード例 #20
0
 public void Show(GameObject gameObject, bool includeDescendants)
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Show GameObject");
     SceneVisibilityState.SetGameObjectHidden(gameObject, false, includeDescendants);
 }
コード例 #21
0
 public void ExitIsolation()
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Exit Isolation");
     RevertIsolationCurrentStage();
 }
コード例 #22
0
 public void TogglePicking(GameObject gameObject, bool includeDescendants)
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Toggle Picking");
     SceneVisibilityState.SetGameObjectPickingDisabled(gameObject, !SceneVisibilityState.IsGameObjectPickingDisabled(gameObject), includeDescendants);
 }
コード例 #23
0
 public void ToggleVisibility(GameObject gameObject, bool includeDescendants)
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Toggle Visibility");
     SceneVisibilityState.SetGameObjectHidden(gameObject, !SceneVisibilityState.IsGameObjectHidden(gameObject), includeDescendants);
 }
コード例 #24
0
 public void EnablePicking(GameObject[] gameObjects, bool includeDescendants)
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Enable Picking GameObjects");
     SceneVisibilityState.SetGameObjectsPickingDisabled(gameObjects, false, includeDescendants);
 }
コード例 #25
0
 public void Hide(GameObject[] gameObjects, bool includeDescendants)
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Hide GameObjects");
     SceneVisibilityState.SetGameObjectsHidden(gameObjects, true, includeDescendants);
 }
コード例 #26
0
 public void Hide(GameObject gameObject, bool includeDescendants)
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Set GameObject Hidden");
     SceneVisibilityState.SetGameObjectHidden(gameObject, true, includeDescendants);
     VisibilityChanged();
 }
コード例 #27
0
 public void DisableAllPicking()
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Disable All Picking");
     DisableAllPickingNoUndo();
 }
コード例 #28
0
 public void Show(GameObject[] gameObjects, bool includeDescendants)
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Show GameObjects");
     SceneVisibilityState.SetGameObjectsHidden(gameObjects, false, includeDescendants);
     VisibilityChanged();
 }
コード例 #29
0
 public void HideAll()
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Hide All");
     HideAllNoUndo();
 }
コード例 #30
0
 public void DisablePicking(GameObject gameObject, bool includeDescendants)
 {
     Undo.RecordObject(SceneVisibilityState.GetInstance(), "Disable Picking GameObject");
     SceneVisibilityState.SetGameObjectPickingDisabled(gameObject, true, includeDescendants);
 }