public void TriggerTransition(Transition transition) { State nextStateId = _currentState.GetNextState(transition); if (nextStateId != State.NoState) { BaseGameState nextState = null; if (_gameStates.TryGetValue(nextStateId, out nextState)) { _currentState.OnExitState(); _currentState = nextState; _currentState.OnEnterState(); } else { Debug.LogError("Trying to transition to an uncreated state: " + nextStateId.ToString()); } } }