- Home /
 
               Question by 
               gallant1357 · Oct 20, 2018 at 11:39 AM · 
                playeraienemynavmeshagentenemy ai  
              
 
              NavMeshAgent does not follow player
I am making a stealth game where when the enemy ai sees the player they chase the player, however when they are behind a wall or some obstacle they wont be able to see the player, the enemy vision is like a cone, i have made a nav mesh agent for my enemy ai and baked the area, when the player is in enemy sight, the ai is not moving at all, this is the code i have below
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.AI;
 
 public class enemyControl : MonoBehaviour
 {
     Ray enemyRay;
     public Color rayColor;
     RaycastHit rayHit;
     bool follow;
     public float sightDist;
 
 
     private NavMeshAgent agent;
     public GameObject him;
 
     void Start()
     {
         agent = GetComponent<NavMeshAgent>();
         him = GameObject.FindGameObjectWithTag("Player");
     }
 
     void Update()
     {
         //enemyRay = new Ray(transform.position, transform.forward * sightDist);
         Debug.DrawRay(transform.position + Vector3.up, transform.forward* sightDist, rayColor);
         Debug.DrawRay(transform.position + Vector3.up, (transform.forward  + transform.right).normalized * sightDist, rayColor);
         Debug.DrawRay(transform.position + Vector3.up, (transform.forward - transform.right).normalized * sightDist, rayColor);
 
         if (Physics.Raycast(transform.position + Vector3.up, transform.forward, out rayHit, sightDist))
         {
             if (rayHit.collider.gameObject.tag == "player")
             {
                 agent.SetDestination(him.transform.position);
                 him = rayHit.collider.gameObject;
             }
         }
 
         if (Physics.Raycast(transform.position + Vector3.up, (transform.forward + transform.right).normalized, out rayHit, sightDist))
         {
             if (rayHit.collider.gameObject.tag == "player")
             {
                 agent.SetDestination(him.transform.position);
                 him = rayHit.collider.gameObject;
             }
         }
 
         if (Physics.Raycast(transform.position + Vector3.up, (transform.forward - transform.right).normalized, out rayHit, sightDist))
         {
             if (rayHit.collider.gameObject.tag == "player")
             {
                 agent.SetDestination(him.transform.position);
                 him = rayHit.collider.gameObject;
             }
         }
 
         
     }
 
     void OnTriggerEnter(Collider coll)
     {
         if (coll.tag == "Player")
         {
             agent.SetDestination(him.transform.position);
             him = coll.gameObject;
         }
     }
 }
 
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
Enemy's NavMesh not working 2 Answers
Enemy raycast detection 0 Answers
Enemy detection in the light(Javascript) 1 Answer
Tank not moving towards player 1 Answer
Different enemy types script design 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                