ofb/Assets/Scripts/DebugSceneSwitcher.cs
slevy14 33ee9e08e1 added a debug mode variable to state controller
if this is checked, then the debug menu will be useable. when building the game, make sure to uncheck the debug mode box to prevent it from coming up in the build
2023-04-26 13:27:08 -07:00

42 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;
public class DebugSceneSwitcher : MonoBehaviour
{
void Awake() {
if (!GameObject.Find("StateController").GetComponent<StateController>().inDebugMode) {
Destroy(this.gameObject);
}
// check to see if a debug canvas already exists
if (GameObject.FindGameObjectWithTag("DebugCanvas") != null) {
Destroy(this.gameObject);
} else { // if it doesn't, then this is the only one
this.gameObject.tag = "DebugCanvas";
}
DontDestroyOnLoad(this.gameObject);
CreateDropdownOptions();
}
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++) {
string newName = System.IO.Path.GetFileNameWithoutExtension(SceneUtility.GetScenePathByBuildIndex(i));
print(newName);
sceneNames.Add(newName);
}
sceneDropdown.AddOptions(sceneNames);
}
}
public void ChangeScene(int index) {
// print(index);
GameObject.FindGameObjectWithTag("SceneManager").GetComponent<SceneController>().LoadChosenScene(index);
}
}