public void Transition(ExplicitState toState) { if (CurrentState == toState) { return; } if (toState == null) { throw new ArgumentNullException("toState"); } OnExitState(); ExitState?.Invoke(); CurrentState.OnExit(); CurrentState = toState; OnEnterState(); EnterState?.Invoke(); CurrentState.OnEnter(); }
public static void NotifyExitState(GameState state) { ExitState?.Invoke(state); }