Beispiel #1
0
    /// <summary>
    /// 初始化默认状态
    /// </summary>
    private void InitDefaultState()
    {
        defaultState = states.Find(s => s.stateID == defaultStateID);

        currentState = defaultState;

        currentState.EnterAction(this);
    }
Beispiel #2
0
    /// <summary>
    /// 改变当前状态回调
    /// </summary>
    /// <param name="stateID"></param>
    public void ChangeActiveStateCallBack(FSMStateID stateID)
    {
        FSMState nextState = stateID == FSMStateID.Default ? defaultState : states.Find(s => s.stateID == stateID);

        //退出当前状态
        currentState.ExitAction(this);
        //切换状态
        currentState = nextState;
        //进入下一状态
        nextState.EnterAction(this);
    }