예제 #1
0
 private void OnReadyToChangeState(IAIState nextState)
 {
     _currentState.OnReadyToTransition -= OnReadyToChangeState;
     _currentState?.TryExit(nextState);
     _currentState = nextState;
     _currentState.OnReadyToTransition += OnReadyToChangeState;
     _currentState?.TryEnter();
 }
예제 #2
0
 public virtual void TryExit(IAIState nextState)
 {
     // is this state on the next state's path?
     if (nextState.IsStateOnPath(this))
     {
         // if so, no need to exit this state
         return;
     }
     if (_parentState != null)
     {
         _parentState.TryExit(nextState);
     }
     OnExit();
 }