/// <summary> /// Check if there is any target in sight of the ai actor. /// </summary> /// <param name="_controller">Ai actor that is looking.</param> /// <returns></returns> private bool HasTargetInSight(AIView _controller) { AIDetector _detector = _controller.GetAIData.GetDetectorComponent; bool hasTarget = false; if (_detector.GetNearTargets != null && _detector.GetNearTargets.Count > 0) { foreach (Actor target in _detector.GetNearTargets) { if (IsPotentialTargetInFieldOfView(_controller.GetOwner, target, _controller.GetAIData.GetViewAngle)) { hasTarget = IsPotentialTargetInSight(_controller.GetOwner, target, _controller.GetAIData.GetViewRange); break; } } } return(hasTarget); }
private void Start() { navigationComponent = GetComponent <NavMeshAgent>(); detectorComponent = GetComponent <AIDetector>(); }