| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | using GameLogic.Combat.CombatTool;using GameLogic.Combat.CombatTool.CombatReport;using GameLogic.Combat.Hero;using UnityEngine;namespace GameLogic.Combat.CombatState{    public class CombatFightState : CombatStateBasic    {        public CombatFightState(CombatController combatController) : base(combatController)        {        }        protected override void ProEnter()        {            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;            CombatController.CombatCameraControllder.SetPos(playerHeroEntity.combatHeroGameObject.transform);            CombatController.CombatCameraControllder.isStop = true;            CombatController.IsFightState = true;            CombatController.currActiveCombat.CombatCameraControllder.SetFieldOfView(55,3);                    }        protected override void ProExit()        {            CombatController.CombatCameraControllder.isStop = false;                   }        protected override void ProUpdate(float t)        {            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;            if (playerHeroEntity == null)            {                return;            }            CombatHeroEntity[] allHero =                CombatController.currActiveCombat.CombatHeroController.GetHero(true);            IHero ihero = FindMinDixtance(allHero);            if (ihero == null)            {                CombatController.ChangeState("update");                return;            }            CombatController.CombatHeroController.Update(t);            CombatController.CombatCameraControllder.Update(t);            CombatController.GameTimeLineParticleFactory.CombatUpdate(t);        }        protected IHero FindMinDixtance(CombatHeroEntity[] allHero)        {            IHero minDistanceHero = null;            if (allHero == null)            {                return null;            }            CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;            float minDistance = float.MaxValue;            for (int i = 0; i < allHero.Length; i++)            {                CombatHeroEntity hero = allHero[i];                if (hero.GetMainHotPoin<CombatHeroHitPoint>() == null)                {                    continue;                }                float distance = Vector3.SqrMagnitude(hero.combatHeroGameObject.position -                                                      playerHeroEntity.combatHeroGameObject.position);                if (distance < minDistance&& distance < 500)                {                    // if (!_combatHeroEntity.IsEnemy || distance < _combatHeroEntity.CurrCombatHeroInfo.maxDisTo + 100)                    {                        minDistance = distance;                        minDistanceHero = hero;                    }                }            }            return minDistanceHero;        }    }}
 |