static public Attackable FindNearestEnemy(Attackable.Side ourSide, Vector3 ourPosition) { List <Attackable> enemies = ourSide == Attackable.Side.Good? _evilAttackable : _goodAttackable; Attackable nearest = null; float nearesDistanceSqr = float.MaxValue; for (int i = 0; i < enemies.Count; i++) { Attackable enemy = enemies[i]; if (enemy == null) { Debug.LogWarning("Attackables lists not up to date"); UpdateList(); continue; } float distanceSqr = (ourPosition - enemy.transform.position).sqrMagnitude; if (distanceSqr > nearesDistanceSqr) { continue; } nearesDistanceSqr = distanceSqr; nearest = enemy; } return(nearest); }
public HealthBar GetHealthBarPrefab(Attackable.Side side) { return(side == Attackable.Side.Evil ? _evilHealthBar : _goodHealthBar); }