// Use this for initialization // Use this for initialization void Start() { wapon1 = GetComponentInChildren <IInputClient>(); GetComponent <InputClientManager>().ResetClient(wapon1); processor = GetComponent <LEUnitProcessorBase>(); animationPro = GetComponent <LEUnitAnimatorManager>(); animationPro.SetMotionTypeImmediately(LEUnitAnimatorManager.AnimationMotionType.IWR_0); angent = GetComponent <NavMeshAgent>(); partrolState = new AiPatrolState(this); searchState = new AISearchState(this); chaseState = new AiChaseState(this); fightState = new AiFightState(this); partrolState.Init(); searchState.Init(); chaseState.Init(); fightState.Init(); currentState = partrolState; currentState.OnStateEnter(); }
protected override void Initialized() { GunClass[] guns = GetComponentsInChildren <GunClass>(); foreach (GunClass item in guns) { m_Guns.Add(item); } m_CurrentlyActiveGun = m_Guns[Random.Range(0, m_Guns.Count)]; float sqrRange = m_AIGunnerField.AttackbyGunRange * m_AIGunnerField.AttackbyGunRange; m_unwareAIState = new AIUnwareState <AIManager>(this, sqrRange); m_patrolAIState = new AIPatrolState <AIManager>(this, sqrRange); m_chaseAIState = new AIChaseState <AIManager>(this, sqrRange); m_searchAIState = new AISearchState <AIManager>(this, sqrRange); m_coverAIState = new AICoverState <AIManager>(this); m_gunFireAIState = new AIGunFireState(this); if (m_unwareAIState == null || m_patrolAIState == null || m_chaseAIState == null || m_searchAIState == null || m_gunFireAIState == null) { Debug.LogError("AI State is null"); } base.Initialized(); }
protected override void Initialized() { m_GiveHitColliders = GetComponentsInChildren <GiveHitCollider>(); float sqrRange = m_AIBoxerField.AttackRange * m_AIBoxerField.AttackRange; m_unwareAIState = new AIUnwareState <AIManager>(this, sqrRange); m_patrolAIState = new AIPatrolState <AIManager>(this, sqrRange); m_chaseAIState = new AIChaseState <AIManager>(this, sqrRange); m_searchAIState = new AISearchState <AIManager>(this, sqrRange); m_coverAIState = new AICoverState <AIManager>(this); float sqrKickDist = m_AIBoxerField.KickRange * m_AIBoxerField.KickRange; float sqrPunchDist = m_AIBoxerField.PunchRange * m_AIBoxerField.PunchRange; m_boxingAIState = new AIBoxingState(this, m_charRadius, sqrRange, sqrKickDist, sqrPunchDist); DisableGiveHitCollider(HitColliderType.LeftAnkle); base.Initialized(); }