using System.Linq; using BehaviorDesigner.Runtime.Tasks; using UnityEngine; namespace CoreGame.Render { /// /// 视线x米内是否有敌人 /// public class IsEnemyInsightCondition : Conditional { [SerializeField] private float range; public override TaskStatus OnUpdate() { var ownerEnt = (CombatEntity)(Owner.GetEntity()); var ac = ownerEnt.aI; var combatEntities = ListPool.Pop(); TargetSelectSrv.SelectDistanceEnts(ownerEnt, range, combatEntities); ac.targetList.Clear(); for (var index = 0; index < combatEntities.Count; index++) { ac.targetList.Add(combatEntities[index].creationIndex); } ListPool.Push(ref combatEntities); return ac.targetList.Count > 0 ? TaskStatus.Success : TaskStatus.Failure; } } }