public StateMachineTransitionState ExcuteTrans(AbsState formState, AbsState toState)
 {
     FromState   = formState;
     ToState     = toState;
     _transState = ExcuteTransEx();
     return(_transState);
 }
 public AbsTransition(StateMachine machine, string name, AbsState formState, AbsState toState)
 {
     Name        = name;
     Entity      = machine.Entity;
     Machine     = machine;
     _transState = StateMachineTransitionState.Ready;
     FromState   = formState;
     ToState     = toState;
 }
Пример #3
0
 public void Update(float interval)
 {
     if (Machine.CurTrans == null)
     {
         UpdateEx(interval);
     }
     else
     {
         if (Machine.CurTrans.TransState == StateMachineTransitionState.Ready)
         {
             OnExitState(this);
             Machine.CurTrans.TransState = StateMachineTransitionState.Transing;
         }
         StateMachineTransitionState state = Machine.CurTrans.ExcuteTrans(this, Machine.CurTrans.ToState);
         if (state == StateMachineTransitionState.Finish)
         {
             Machine.CurrentState.OnEnterStateEx(Machine.CurTrans.ToState);
             Machine.CurTrans            = null;
             Machine.CurTrans.TransState = StateMachineTransitionState.Ready;
         }
     }
 }