Ejemplo n.º 1
0
        private void SwitchToNewState(MainMenuStates nextState)
        {
            CurentState?.ExitState();

            CurentState = _availableStates[nextState];

            CurentState?.EnterState();

            OnStateChanged?.Invoke(CurentState);
        }
Ejemplo n.º 2
0
        private void Update()
        {
            if (CurentState == null)
            {
                CurentState = _availableStates.Values.First();
                CurentState.EnterState();
            }

            MainMenuStates nextState = CurentState.Tick();

            Debug.Log(CurentState);

            PreviousState = CurentState;

            if (nextState != MainMenuStates.Null && _availableStates[nextState]?.GetType() != CurentState?.GetType())
            {
                SwitchToNewState(nextState);
            }
        }