private void ChangeState(IState <T> nextState) { if (m_CurState != null) { m_CurState.OnExitState(); } if (nextState != null) { m_CurState = nextState; m_CurState.OnEnterState(); } }
public void SetDefaultState(string stateName, bool startImmediately = true) { if (States.ContainsKey(stateName)) { m_DefaultState = States[stateName]; m_CurState = m_DefaultState; if (startImmediately) { m_CurState.OnEnterState(); } } else { UnityEngine.Debug.Log(("Game Error:The state wa not in BaseFSM states")); } }
/// <summary> /// 进行状态过渡 /// </summary> /// <param name="transition"></param> private void DoTransition(ITransition transition) { _currentState.OnExitState(); _currentState = transition.ToState; _currentState.OnEnterState(); }