Example #1
0
        /// <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);
        }
Example #2
0
        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);
        }
Example #3
0
 /// <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);
 }