private static void SceneManager_sceneLoaded(Scene arg0, LoadSceneMode arg1) { if (playModeController == null) { return; } if (!wasEntryOpened) { if (arg0.path == playModeController.EntryScene.SceneAssetPath) { wasEntryOpened = true; } if (!wasEntryOpened) { return; } } if (string.IsNullOrEmpty(playModeController.goToOnPlay)) { playModeController.ignoreEntryCall = false; playModeController = null; return; } if (arg0.path == playModeController.GetSceneByName(playModeController.goToOnPlay).SceneAssetPath) { playModeController.ignoreEntryCall = false; playModeController = null; } else { if (playModeController.Transitioner == null) { playModeController.OnTransitionerChanged += PlayModeController_OnTransitionerChanged; } else { playModeController.TransitionToScene(playModeController.goToOnPlay); } } SceneManager.sceneLoaded -= SceneManager_sceneLoaded; }
/// <summary> /// Load the scene /// </summary> /// <param name="sceneName">The name of the scene to load</param> public void LoadScene(string sceneName) { if (SceneManager == null) { Debug.LogError("Scene manager null, cannot load scene"); return; } if (RequireUnlocked) { SceneManager.TransitionIfUnlocked(sceneName); } else { SceneManager.TransitionToScene(sceneName); } }