Beispiel #1
0
 /// <summary>
 /// 切换状态, 如果是本身就不切换
 /// </summary>
 public void ChangeState(CBaseState state)
 {
     if (state == m_currState)
     {
         return;
     }
     SetCurrState(state);
 }
Beispiel #2
0
 private void SetCurrState(CBaseState state)
 {
     m_lastState = m_currState;
     m_currState = state;
     if (m_lastState != null)
     {
         m_lastState.Exit(this);
     }
     m_currState.Enter(this);
 }
Beispiel #3
0
        public void RegisterState(CBaseState state)
        {
            if (m_stateDict.ContainsKey(state.Name))
            {
                Debug.LogError("Duplicate RegisterState With State Name " + state.Name);
                return;
            }

            m_stateDict[state.Name] = state;
        }
Beispiel #4
0
        public void Destroy()
        {
            foreach (KeyValuePair <string, CBaseState> item in m_stateDict)
            {
                item.Value.Destroy();
            }
            m_stateDict.Clear();

            m_currState   = null;
            m_lastState   = null;
            m_stateDict   = null;
            m_globalState = null;
        }
Beispiel #5
0
 public void RegisterGlobalState(CBaseState state)
 {
     //目前认为 全局状态不应该注册进去
     m_globalState = state;
 }