UnityのSceneManager



Unitys Scenemanager



using System.Collections using UnityEngine using UnityEngine.SceneManagement using UnityEngine.UI public class SceneManagerTest : MonoBehaviour { public Text m_Text public Button m_Button void Start() { m_Button.onClick.AddListener(LoadButton) SceneManager.activeSceneChanged += OnSceneChanged SceneManager.sceneLoaded += OnSceneLoaded SceneManager.sceneUnloaded += OnSceneUnLoaded } private void OnSceneUnLoaded(Scene arg0) { print('OnSceneUnLoaded ' + arg0.name) } private void OnSceneLoaded(Scene arg0, LoadSceneMode arg1) { print('OnSceneLoaded ' + arg0.name + ' ' + arg1) } private void OnSceneChanged(Scene arg0, Scene arg1) { print('OnSceneChanged ' + arg0.name + ' ' + arg1.name) } void LoadButton() { StartCoroutine(LoadScene()) } IEnumerator LoadScene() { yield return null AsyncOperation asyncOperation = SceneManager.LoadSceneAsync('02_Menu') / / Do not activate the scene asyncOperation.allowSceneActivation = false Debug.Log('Process :' + asyncOperation.progress) //Load Text and progress bar when loading is in progress while (!asyncOperation.isDone) { m_Text.text = 'Loading progress: ' + (asyncOperation.progress * 100) + '%' if (asyncOperation.progress >= 0.9f) { m_Text.text = 'Press the space bar to continue' if (Input.GetKeyDown(KeyCode.A)) / / Activate the scene asyncOperation.allowSceneActivation = true } yield return null } } }