void OnLevelWasLoaded(int aIndex) { string sceneName = Application.loadedLevelName; if(sceneName == FINAL_SCENE) { Application.Quit(); return; } ///Load the scene, finished unloading if (sceneName == EMPTY_SCENE) { if (m_TargetScene != null) { Application.LoadLevel(m_TargetScene.sceneName); m_IsUnloading = false; m_IsLoading = true; GameEventManager.InvokeEvent(new GameEventData(Time.time, GameEventID.GAME_LEVEL_UNLOAD_FINISH, GameEventType.GAME, this, loadedScene)); GameEventManager.InvokeEvent(new GameEventData(Time.time, GameEventID.GAME_LEVEL_LOAD_BEGIN, GameEventType.GAME, this, targetScene)); } } //Finished Loading Target scene else if (sceneName == m_TargetScene.sceneName) { m_LoadedScene = m_TargetScene; m_IsLoading = false; GameEventManager.InvokeEvent(new GameEventData(Time.time, GameEventID.GAME_LEVEL_LOAD_FINISH, GameEventType.GAME, this, targetScene)); StartCoroutine(OnLevelLoaded()); } }
/// <summary> /// Reloads the level and sends an event to the game manager. /// </summary> private void Reload() { m_TargetScene = m_LoadedScene; Application.LoadLevel(EMPTY_SCENE); m_IsUnloading = true; GameEventManager.InvokeEvent(new GameEventData(Time.time, GameEventID.GAME_LEVEL_UNLOAD_BEGIN, GameEventType.GAME, this, loadedScene)); m_LoadTargetTexture = null; }
/// <summary> /// Loads a level by path name /// </summary> private void LoadPath() { GameScene scene = GetSceneByPath(m_LoadTargetSceneName); if(scene == null) { DebugUtils.LogWarning("Missing scene " + m_LoadTargetSceneName); m_LoadTargetSceneName = string.Empty; m_LoadTargetTexture = null; return; } m_TargetScene = scene; Application.LoadLevel(EMPTY_SCENE); m_IsUnloading = true; GameEventManager.InvokeEvent(new GameEventData(Time.time, GameEventID.GAME_LEVEL_UNLOAD_BEGIN, GameEventType.GAME, this, loadedScene)); m_LoadTargetSceneName = string.Empty; m_LoadTargetTexture = null; }