public override BaseEntity SetTarget() { if (_attackedTarget != null && _attackedTarget.CanBeTarget()) { return(_attackedTarget); } else if (ActorProxy != null && ActorProxy.isTaunted) { ActorProxy.DisableBuffEffect(BuffType.Taunted); } if (ActorProxy == null) { return(null); } if (ActorProxy.isInAllyCamp) { var position = transform.position; var target = ActorProxy.GetEnemies().Where(e => e.ActorProxy.isInEnemyCamp) .OrderBy(e => (e.transform.position - position).sqrMagnitude).FirstOrDefault(); if (target != null) { return(target); } } var cols = Physics.OverlapSphere(transform.position, searchRange, targetLayer); Minion closestTarget = null; var distance = float.MaxValue; foreach (var col in cols) { var bs = col.GetComponentInParent <Minion>(); if (bs == null || !bs.CanBeTarget()) { continue; } var sqr = Vector3.SqrMagnitude(transform.position - col.transform.position); if (sqr < distance) { distance = sqr; closestTarget = bs; } } if (closestTarget != null) { return(closestTarget); } return(null); }