public IList <Scene> GetCurrentSystemScenes() { var scene = SceneManager.GetActiveScene(); if (scene.path == BaseScene.SceneName) { return new [] { SceneManager.GetSceneByPath(BaseScene), SceneManager.GetSceneByPath(LoadingScreen) } } ; return(new [] { SceneManager.GetSceneByPath(BaseScene) }); } }
public void Init() { var scene = BaseGame.Instance?.GetLoader()?.BaseScene; if (scene != null && scene.HasValue()) { var mainScene = SceneManager.GetSceneByPath(scene); var gameCamera = AquireMainCamera(mainScene); var levelCamera = AquireLevelCamera(mainScene); if (gameCamera != levelCamera) { if (levelCamera && PreferLevelCamera) { SwitchCameras(gameCamera, levelCamera); } else { SwitchCameras(levelCamera, gameCamera); } } } }
private void CommenceLoading(SceneReference targetScene) { FadeToBlack().Then(() => { SceneManager.SetActiveScene(SceneManager.GetSceneByPath(BaseScene.SceneName)); }).Then(() => { gameObject.BroadcastToAll("PreOnLoadingScreenOn"); }).Then( () => LoadScene(LoadingScreen) ).Then(() => { gameObject.BroadcastToAll("PostOnLoadingScreenOn"); }).Then( UnfadeFromBlack ).Then( UnloadStrayScenes ).Then( () => LoadScene(targetScene) ).Then(() => { gameObject.BroadcastToAll("PreOnLoadingScreenOff"); }).Then( FadeToBlack ).Then( () => UnloadScene(LoadingScreen) ).Then(() => { gameObject.BroadcastToAll("PostOnLoadingScreenOff"); SceneManager.SetActiveScene(SceneManager.GetSceneByPath(targetScene.SceneName)); }).Then( UnfadeFromBlack ).Then ( () => EndLoadScene() ).Catch(exception => { Debug.LogError($"Scene loading failed with following exception: {exception.ToString()}"); }); }