ofb/Assets/Scripts/DebugSceneSwitcher.cs
Sam c8548e3d4f 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
2023-05-04 19:54:59 -07:00

50 lines
1.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;
public class DebugSceneSwitcher : MonoBehaviour
{
public bool showDropdown;
void Awake()
{
// Keep the object around when we switch scenes
DontDestroyOnLoad(this.gameObject);
CreateDropdownOptions();
}
void CreateDropdownOptions()
{
TMP_Dropdown sceneDropdown = GameObject.Find("SceneSwitcherDropdown").GetComponent<TMP_Dropdown>();
if (showDropdown) {
if (sceneDropdown.options.Count == 0)
{
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);
}
} else {
sceneDropdown.gameObject.SetActive(false);
}
}
public void ChangeScene(int index)
{
// print(index);
SceneController.Instance.LoadChosenScene(index);
this.gameObject.SetActive(false);
}
public void ChangeSceneByName(string name) {
SceneController.Instance.LoadSceneByName(name);
this.gameObject.SetActive(false);
}
}