using System.Collections.Generic; using UnityEngine; public class EnemyTargetManager : MonoBehaviour { [SerializeField] private List targetPoints = new List(); public Transform GetClosestActiveTarget(Vector3 position) { List closestTargets = new List(); float closestDistanceSqr = float.MaxValue; foreach (Transform target in targetPoints) { if (target == null || !target.gameObject.activeInHierarchy) continue; float distanceSqr = (target.position - position).sqrMagnitude; if (distanceSqr < closestDistanceSqr) { closestDistanceSqr = distanceSqr; closestTargets.Clear(); closestTargets.Add(target); } else if (Mathf.Approximately( distanceSqr, closestDistanceSqr)) { closestTargets.Add(target); } } if (closestTargets.Count == 0) return null; int randomIndex = Random.Range( 0, closestTargets.Count ); return closestTargets[randomIndex]; } }