ofb/Assets/Scripts/DebugSceneSwitcher.cs

50 lines
1.4 KiB
C#
Raw Normal View History

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);
}
}