/// <summary> /// Find closest target to attack /// </summary> private void GetTarget() { int numberOfTargets = _rangeCheck.GetNumberOfTargets(); if (numberOfTargets > 0) { GameObject newTarget; if (numberOfTargets > 1) { newTarget = TurretOperations.NearestTarget(transform, _rangeCheck.GetValidTargets(), _rangeCheck.GetTags()); } else { newTarget = TurretOperations.SingleTargetObstructed(transform, _rangeCheck.GetTarget(), _rangeCheck.GetTags()); } if (newTarget != null && !GameObject.ReferenceEquals(_target, newTarget)) { _target = newTarget; _animator.Activate(); _fireTimer = 0.0f; } else if (newTarget == null && !GameObject.ReferenceEquals(_target, null)) { _target = null; } } else { if (!GameObject.ReferenceEquals(_target, null)) { _target = null; _animator.Deactivate(); } } }