예제 #1
0
 public override void Execute(StateEvent data)
 {
     if (changeCount >= changeCountMax)
     {
         data.stateMachine.previousState = this;
         data.stateMachine.ChangeState(nextAnimationState, data);
         LogTextHelper.Info("this is CAR_OUT Execute next state:--->>IDLE");
     }
     else
     {
         changeCount++;
     }
 }
예제 #2
0
        private void ChangeState(State state, StateEvent data, StateEvent previousData = null)
        {
            //如果切换的状态就是本状态,就退出
            if (currentState != null && state.GetStateId == currentState.GetStateId)
            {
                return;
            }

            //退出上一个状态
            if (previousState != null)
            {
                previousState.Exit(previousData);
            }

            //设置进状态,进入新状态
            currentState = state;

            currentState.Enter(data);
        }
예제 #3
0
 abstract public void Exit(StateEvent data);
예제 #4
0
 abstract public void Execute(StateEvent data);
예제 #5
0
 abstract public void Enter(StateEvent data);
예제 #6
0
 private void ChangeState(AnimationState animationState, StateEvent data, StateEvent previousData = null)
 {
     ChangeState(GetState(animationState), data, previousData);
 }
예제 #7
0
 public override void Exit(StateEvent data)
 {
     LogTextHelper.Info("this is CAR_OUT Exit ");
 }
예제 #8
0
 public override void Enter(StateEvent data)
 {
     LogTextHelper.Info("this is CAR_Weighted Enter");
 }
예제 #9
0
 public override void Exit(StateEvent data)
 {
     LogTextHelper.Info("this is CAR_ReadyWeight Exit ");
 }
예제 #10
0
 public override void Exit(StateEvent data)
 {
     LogTextHelper.Info("this is IDLE Exit next state:");
 }
예제 #11
0
 public StateMachine(StateEvent dataEvent)
 {
     this.dataEvent = DataEvent;
 }