//------------------------------------------------------------------------------------------------------- //public override bool HitTest(Ray ray, out RaycastHit rayHit) //{ // if (m_EntityView != null) // { // return m_EntityView.HitTest(ray,out rayHit); // } // rayHit = new RaycastHit(); // return false; //} //------------------------------------------------------------------------------------------------------- public override void ChangeState(CreatureState state, object param = null) { if (m_FMS != null) { //if (EntitySystem.m_ClientGlobal.IsMainPlayer(this as IEntity)) //{ // UnityEngine.Debug.Log("ChangeState ..." + state); //} m_FMS.ChangeState((int)state, param); } }
///////////////////////////////////////////////////////////////////////////////////////////////////////// // 创建状态机 private void CreateStateMachine() { m_FMS = new Engine.Utility.StateMachine <Creature>(this); m_FMS.RegisterState(new CreatureNormal(m_FMS)); m_FMS.RegisterState(new CreatureIdle(m_FMS)); m_FMS.RegisterState(new CreatureDead(m_FMS)); m_FMS.RegisterState(new CreatureBeginDead(m_FMS)); //m_FMS.RegisterState(new CreatureFitght(m_FMS)); m_FMS.RegisterState(new CreatureMove(m_FMS)); m_FMS.RegisterState(new CreatureContrl(m_FMS)); m_FMS.ChangeState((int)Client.CreatureState.Normal, null); // 初始状态设置为Normal }