/// <summary> /// 初始化默认状态 /// </summary> private void InitDefaultState() { defaultState = states.Find(s => s.stateID == defaultStateID); currentState = defaultState; currentState.EnterAction(this); }
/// <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); }