コード例 #1
0
ファイル: BaseFSM.cs プロジェクト: 772148702/mmd
        private void ChangeState(IState <T> nextState)
        {
            if (m_CurState != null)
            {
                m_CurState.OnExitState();
            }

            if (nextState != null)
            {
                m_CurState = nextState;
                m_CurState.OnEnterState();
            }
        }
コード例 #2
0
ファイル: BaseFSM.cs プロジェクト: 772148702/mmd
 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"));
     }
 }
コード例 #3
0
ファイル: StateMachine.cs プロジェクト: wujiaze/DesignPattern
 /// <summary>
 /// 进行状态过渡
 /// </summary>
 /// <param name="transition"></param>
 private void DoTransition(ITransition transition)
 {
     _currentState.OnExitState();
     _currentState = transition.ToState;
     _currentState.OnEnterState();
 }