/// <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);
        }
Example #2
0
 private void Start()
 {
     navigationComponent = GetComponent <NavMeshAgent>();
     detectorComponent   = GetComponent <AIDetector>();
 }