/// <summary> /// 设置当前状态 /// </summary> /// <param name="newState"></param> public void SetState(SceneType newState) { if (m_Dic.ContainsKey(newState)) { if (m_CurrentSceneState != null) { m_CurrentSceneState.OnExit(); } m_CurrentSceneState = m_Dic[newState]; m_CurrentSceneState.OnEnter(); } }
/// <summary> /// 场景加载完成回调 /// </summary> /// <param name="arg0"></param> /// <param name="arg1"></param> private void OnSceneLoaded(Scene scene, LoadSceneMode mode) { if (m_CurrentSceneState is GameStateLoading) { m_CurrentSceneState.OnExit(); } if (scene.name.Equals("Scene_Loading")) { m_CurrentSceneState = m_Dic[SceneType.Loading]; } else { m_CurrentSceneState = m_Dic[m_NextType]; } m_CurrentSceneState.OnEnter(); }
void Start() { if (Instance != null) { Destroy(this.gameObject); } Instance = this; _saveManager.Init(this); _uiManager.Init(this); _cameraManager.Init(this); _levelManager.Init(this); _gameState = new StartState(this); _gameState.OnEnter(); this.DelayedAction(() => { }, 2.0f); }
public void ChangeGameState(GameStateBase gamestate) { _gameState.OnExit(); _gameState = gamestate; _gameState.OnEnter(); }