created new demo scene switcher

this is just an overhaul of the debug scene switcher -- no longer breaks if you leave the main menu! a win for the girlies
This commit is contained in:
Sam
2023-05-04 19:54:59 -07:00
parent 608173221e
commit c8548e3d4f
9 changed files with 2134 additions and 24 deletions

View File

@@ -6,6 +6,8 @@ using TMPro;
public class DebugSceneSwitcher : MonoBehaviour
{
public bool showDropdown;
void Awake()
{
// Keep the object around when we switch scenes
@@ -16,16 +18,20 @@ public class DebugSceneSwitcher : MonoBehaviour
void CreateDropdownOptions()
{
TMP_Dropdown sceneDropdown = GameObject.Find("SceneSwitcherDropdown").GetComponent<TMP_Dropdown>();
if (sceneDropdown.options.Count == 0)
{
List<string> sceneNames = new List<string>();
for (int i = 0; i < SceneManager.sceneCountInBuildSettings; i++)
if (showDropdown) {
if (sceneDropdown.options.Count == 0)
{
string newName = System.IO.Path.GetFileNameWithoutExtension(SceneUtility.GetScenePathByBuildIndex(i));
print(newName);
sceneNames.Add(newName);
List<string> sceneNames = new List<string>();
for (int i = 0; i < SceneManager.sceneCountInBuildSettings; i++)
{
string newName = System.IO.Path.GetFileNameWithoutExtension(SceneUtility.GetScenePathByBuildIndex(i));
print(newName);
sceneNames.Add(newName);
}
sceneDropdown.AddOptions(sceneNames);
}
sceneDropdown.AddOptions(sceneNames);
} else {
sceneDropdown.gameObject.SetActive(false);
}
}
@@ -35,4 +41,9 @@ public class DebugSceneSwitcher : MonoBehaviour
SceneController.Instance.LoadChosenScene(index);
this.gameObject.SetActive(false);
}
public void ChangeSceneByName(string name) {
SceneController.Instance.LoadSceneByName(name);
this.gameObject.SetActive(false);
}
}

View File

@@ -50,4 +50,8 @@ public class SceneController : MonoBehaviour
SceneManager.LoadScene(index);
}
public void LoadSceneByName(string name) {
SceneManager.LoadScene(name);
}
}

View File

@@ -49,7 +49,9 @@ public class StateController : MonoBehaviour
}
DontDestroyOnLoad(this.gameObject);
SceneManager.sceneLoaded += OnSceneLoaded;
}
void Start() {
if (this.inDebugMode)
{
debugCanvas = GameObject.Find("DebugCanvas");