/*状态改变*/ public void ChangeState(CState <entity_type> pNewState) { if (pNewState == null) { Debug.LogError("can't find this state"); } if (pNewState != m_pCurrentState) { //触发退出状态调用Exit方法 m_pCurrentState.Exit(m_pOwner); //保存上一个状态 m_pPreviousState = m_pCurrentState; //设置新状态为当前状态 m_pCurrentState = pNewState; m_pCurrentState.Target = m_pOwner; //进入当前状态调用Enter方法 m_pCurrentState.Enter(m_pOwner); } }