/// <summary> ///直接改变一个状态 ///target:目标 ///isForce:是否为强制性 ///isManual:是否为手动改变(非系统性操作) /// </summary> /// <param name="state"></param> public virtual TStateData ChangeState(TState state, bool isForce = false, bool isManual = true) { int intCurState = Enum <TState> .Int(CurState); int intNextState = Enum <TState> .Int(state); if (!isForce && intCurState == intNextState) { return(null); } PreState = CurState; CurState = state; var newStateData = States[intNextState]; newStateData.SelfUnit = SelfUnit; base.ChangeState(newStateData, isForce, isManual); Callback_OnChangeState?.Invoke(CurState, PreState); return(newStateData); }
public void ChangeState(int state, int index = 0) { int intState = Enum <TState> .Int(State); int intstate = state; if (intState == intstate && Index == index) { return; } PreIndex = Index; PreState = State; Index = index; State = Enum <TState> .Invert(state); Machine?.ChangeState(States[intstate]); Callback_OnChangeState?.Invoke(State, PreState, Index); }
/// <summary> ///直接改变一个状态 /// </summary> /// <param name="state"></param> public virtual void Change(TState state, bool isForce = false, bool isManual = true) { Machine.ChangeState(state, isForce, isManual); Callback_OnChangeState?.Invoke(CurState, PreState); }