void Update() { // State machine shenanigans if (!m_initialised) { return; } if (m_currentGameState != null) { m_currentGameState.UpdateState(); } if (m_nextGameStateIndex != Enums.GameStateNames.GS_00_NULL) { if (m_currentGameState != null) { m_currentGameState.ExitState(m_nextGameStateIndex); } m_currentGameState = m_gameStateDictionary[m_nextGameStateIndex]; m_currentGameState.EnterState(m_currentGameStateIndex); m_currentGameStateIndex = m_nextGameStateIndex; m_nextGameStateIndex = Enums.GameStateNames.GS_00_NULL; } }
//Change the game state (occurs on next frame) public void ChangeGameState(Enums.GameStateNames nextState) { if (!m_gameStateDictionary.ContainsKey(nextState)) return; m_nextGameStateIndex = nextState; }
//Change the game state (occurs on next frame) public void ChangeGameState(Enums.GameStateNames nextState) { if (!m_gameStateDictionary.ContainsKey(nextState)) { return; } m_nextGameStateIndex = nextState; }
// Update is called once per frame void Update() { // State machine shenanigans if (!m_initialised) return; if (m_currentGameState != null) m_currentGameState.UpdateState(); if (m_nextGameStateIndex != Enums.GameStateNames.GS_00_NULL) { if (m_currentGameState != null) m_currentGameState.ExitState(m_nextGameStateIndex); m_currentGameState = m_gameStateDictionary[m_nextGameStateIndex]; m_currentGameState.EnterState(m_currentGameStateIndex); m_currentGameStateIndex = m_nextGameStateIndex; m_nextGameStateIndex = Enums.GameStateNames.GS_00_NULL; } }
public override void ExitState(Enums.GameStateNames p_nextState) { }
public override void EnterState(Enums.GameStateNames p_prevState) { }
public virtual void ExitState(Enums.GameStateNames p_nextState) { }
public virtual void EnterState(Enums.GameStateNames p_prevState) { }