33ee9e08e1
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
42 lines
1.5 KiB
C#
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);
|
|
}
|
|
}
|