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;
        }
    }
Пример #5
0
 public override void ExitState(Enums.GameStateNames p_nextState)
 {
 }
Пример #6
0
 public override void EnterState(Enums.GameStateNames p_prevState)
 {
 }
Пример #7
0
 public virtual void ExitState(Enums.GameStateNames p_nextState)
 {
 }
Пример #8
0
 public virtual void EnterState(Enums.GameStateNames p_prevState)
 {
 }