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; }
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; } } }