ofb/Assets/Scripts/SceneController.cs
slevy14 5216ea077a added scene switcher debug menu
can be accessed at any time with the
2023-04-27 12:27:15 -07:00

46 lines
1.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class SceneController : MonoBehaviour
{
// this object will always exist!
void Awake() {
// check to see if a state controller already exists
if (GameObject.FindGameObjectWithTag("SceneManager") != null) {
Destroy(this.gameObject);
} else { // if it doesn't, then this is the only one
this.gameObject.tag = "SceneManager";
}
DontDestroyOnLoad(this.gameObject);
SceneManager.sceneLoaded += OnSceneLoaded;
}
void OnSceneLoaded(Scene scene, LoadSceneMode mode) {
GameObject pauseMenu = GameObject.Find("PauseMenuCanvas");
if (pauseMenu != null) {
Button quitButton = GameObject.Find("QuitButton").GetComponent<Button>();
quitButton.onClick.AddListener(BackToMainMenu);
}
if (scene.buildIndex == 0) { // if this is the menu
GameObject.Find("NewGameButton").GetComponent<Button>().onClick.AddListener(NextScene);
}
}
public void NextScene() {
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
}
public void BackToMainMenu() {
SceneManager.LoadScene(0); // main menu scene should be 0
}
public void LoadChosenScene(int index) {
SceneManager.LoadScene(index);
}
}