public IEnumerator Enter(GameStateController controller) { yield return(controller.StartLoading()); var menuSceneName = controller.MainMenuSceneName; _menuScene = SceneManager.GetSceneByName(menuSceneName); if (_menuScene.IsValid() && _menuScene.isLoaded) { yield return(controller.FinishLoading()); yield break; } _loadingOp = SceneManager.LoadSceneAsync(menuSceneName, LoadSceneMode.Additive); while (!_loadingOp.isDone) { yield return(null); controller.SetProgress(_loadingOp.progress); } _menuScene = SceneManager.GetSceneByName(menuSceneName); yield return(new WaitForSeconds(1f));//For Debug yield return(controller.FinishLoading()); }
public IEnumerator Enter(GameStateController controller) { yield return(controller.StartLoading()); var gameSceneName = controller.GameSceneName; _gameScene = SceneManager.GetSceneByName(gameSceneName); if (!_gameScene.IsValid() || !_gameScene.isLoaded) { _loadingOp = SceneManager.LoadSceneAsync(gameSceneName, LoadSceneMode.Additive); while (!_loadingOp.isDone) { yield return(null); controller.SetProgress(_loadingOp.progress * 0.5f); } _gameScene = SceneManager.GetSceneByName(gameSceneName); } yield return(new WaitForSeconds(1f));//For Debug var levelSceneName = controller.CurrentLevel.SceneName; _levelScene = SceneManager.GetSceneByName(levelSceneName); if (!_levelScene.IsValid() || !_levelScene.isLoaded) { _loadingOp = SceneManager.LoadSceneAsync(levelSceneName, LoadSceneMode.Additive); while (!_loadingOp.isDone) { yield return(null); controller.SetProgress(0.5f + _loadingOp.progress * 0.5f); } _levelScene = SceneManager.GetSceneByName(levelSceneName); } if (!controller.SaveFileName.StartsWith("Begin")) { GameController.Instance.LoadFromSaves(controller.SaveFileName); } yield return(controller.FinishLoading()); GameController.Instance.Play(); }