From c4c07057f05e3c2f4192a72b5ff10a793e947bc2 Mon Sep 17 00:00:00 2001 From: Bryan Date: Thu, 2 May 2024 11:50:45 -0600 Subject: [PATCH 1/4] Added Load Project Scenes menu button that adds all project scenes to the list. --- Editor/SceneSwitcherWindow.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Editor/SceneSwitcherWindow.cs b/Editor/SceneSwitcherWindow.cs index 39170c5..44827b8 100644 --- a/Editor/SceneSwitcherWindow.cs +++ b/Editor/SceneSwitcherWindow.cs @@ -364,6 +364,9 @@ public void AddItemsToMenu(GenericMenu menu) { GUIContent content = new GUIContent("Edit Mode"); menu.AddItem(content, _editing, ToggleEdit); + + content = new GUIContent("Load Project Scenes"); + menu.AddItem(content, false, LoadProjectScenes); } private void ToggleEdit() @@ -371,6 +374,17 @@ private void ToggleEdit() _editing = !_editing; } + private void LoadProjectScenes() + { + for (int i = 0; i < SceneManager.sceneCountInBuildSettings; ++i) + { + var path = SceneUtility.GetScenePathByBuildIndex(i); + Debug.Log($"Adding {path}"); + var guid = AssetDatabase.AssetPathToGUID(path); + _sceneSwitcherData.AddScene(guid); + } + } + #endregion } From 7b96b96f3d87822b637a51d896de3634ba48e0ba Mon Sep 17 00:00:00 2001 From: Bryan Date: Thu, 2 May 2024 12:00:36 -0600 Subject: [PATCH 2/4] Clicking on a scene will close if it's already loaded, for fast toggling. --- Editor/SceneSwitcherWindow.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Editor/SceneSwitcherWindow.cs b/Editor/SceneSwitcherWindow.cs index 44827b8..f69e591 100644 --- a/Editor/SceneSwitcherWindow.cs +++ b/Editor/SceneSwitcherWindow.cs @@ -316,6 +316,14 @@ private void SwitchToScene(SceneSwitcherData.SceneData sceneData, string path) var closeScenes = sceneData.closeScenes == BooleanOverride.Default ? _sceneSwitcherData.closeScenes : (sceneData.closeScenes == BooleanOverride.Yes); var loadAdditively = sceneData.loadAdditive == BooleanOverride.Default ? _sceneSwitcherData.loadAdditive : (sceneData.loadAdditive == BooleanOverride.Yes); + // Toggle a scene if it's already loaded. + var current = SceneManager.GetSceneByPath(path); + if (current != null && current.isLoaded) + { + EditorSceneManager.CloseScene(current, false); + return; + } + var scene = EditorSceneManager.OpenScene(path, loadAdditively ? OpenSceneMode.Additive : OpenSceneMode.Single); if (!closeScenes) From 29729b15de3d4a0a32c19a36346ef77fb2de2733 Mon Sep 17 00:00:00 2001 From: Bryan Date: Thu, 2 May 2024 12:09:35 -0600 Subject: [PATCH 3/4] Highlight currently loaded scenes w/ green. --- Editor/SceneSwitcherWindow.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Editor/SceneSwitcherWindow.cs b/Editor/SceneSwitcherWindow.cs index f69e591..bafdcb4 100644 --- a/Editor/SceneSwitcherWindow.cs +++ b/Editor/SceneSwitcherWindow.cs @@ -177,6 +177,10 @@ private void SceneListGui() var preColorBG = GUI.backgroundColor; GUI.backgroundColor = sceneData.color; + var current = SceneManager.GetSceneByPath(path); + if (current != null && current.isLoaded) + GUI.backgroundColor = Color.green; + if (GUILayout.Button(System.IO.Path.GetFileNameWithoutExtension(path))) { GUI.backgroundColor = preColorBG; From 1b71ce80e550787b30bfa4beff0fd04703714178 Mon Sep 17 00:00:00 2001 From: Bryan Date: Thu, 2 May 2024 12:21:09 -0600 Subject: [PATCH 4/4] Added curly braces to satisfy https://app.codacy.com/gh/coryleach/UnitySceneSwitcher/pull-requests/11/issues#issue-7c0b4d65880e16898096413aec288d1a --- Editor/SceneSwitcherWindow.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Editor/SceneSwitcherWindow.cs b/Editor/SceneSwitcherWindow.cs index bafdcb4..be37f16 100644 --- a/Editor/SceneSwitcherWindow.cs +++ b/Editor/SceneSwitcherWindow.cs @@ -179,7 +179,9 @@ private void SceneListGui() var current = SceneManager.GetSceneByPath(path); if (current != null && current.isLoaded) + { GUI.backgroundColor = Color.green; + } if (GUILayout.Button(System.IO.Path.GetFileNameWithoutExtension(path))) {