- Home /
 
 
               Question by 
               el-mas-pro-470 · Jan 09, 2019 at 06:15 PM · 
                enemyrangeenemyaifirst person shootervision  
              
 
              Enemy VISION range? Help!
Hi guys, I tell you that I created myself (and passed ac #) an AI script, but the detection system is very strange, example: I am behind the enemy and I see the same, that is, it would be better to make a field of vision but I do not know how to do it, does anyone know anything? Thank you! (I use unity 4.7.2).
     public Transform Target;
     public Animator Animador;
     public float Distancia = 30;
     public float LastDistance = 50;
     public bool Searching = false;
     public float RotationDamping = 2;
     public float moveSpeed = 5;
     public Vector3 TargetPosition;
     public NavMeshAgent EnemyNV;
     private bool AgentActive = false;
     public NavMeshAgent NavMeshAgentComp;
 
     void Start()
     {
         Animador.SetBool("Aiming", false);    
         TargetPosition = Target.transform.position;
         EnemyNV = GetComponent<NavMeshAgent>();
         NavMeshAgentComp.enabled = false;
     }
 
     void Update()
     {
 
         var distance = Vector3.Distance(Target.position, transform.position);
 
         if(distance <= Distancia)
         {
             LookAtTarget();
             Animador.SetBool("Aiming", true);
             Animador.SetBool("WalkingSearch", false);
             Animador.SetBool("Idle", false);
             
         }   
         if(distance > Distancia)
         {
             SearchTarget();
             Animador.SetBool("Aiming", false);
             Animador.SetBool("WalkingSearch", true);
             Animador.SetBool("Idle", false);
             Searching = true;
             
         }   
         if(distance > LastDistance)
         {
             LastTarget();
         }
     }                
 
     void LookAtTarget()
     {    
         var dir = Target.position - transform.position;
         dir.y = 0;
         var rotation = Quaternion.LookRotation(dir);
         transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * RotationDamping);
         NavMeshAgentComp.enabled = false;
     }
 
     void SearchTarget()
     {
         if(Searching == true)
         {
             Animador.SetBool("WalkingSearch", true);
             NavMeshAgentComp.enabled = true;
             EnemyNV.destination = Target.position;
         }
     }
     
     void LastTarget()
     {
         if(Searching == true)
         {
         Searching = false;
         Animador.SetBool("Aiming", false);
         Animador.SetBool("WalkingSearch", false);
         Animador.SetBool("Idle", true);
             NavMeshAgentComp.enabled = false;
         }
     }
 }                
 
 
              
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
2D Enemy AI range problem 2 Answers
how do i make enemy ai chase player 0 Answers
Flying Zombie 0 Answers
Space between gameobjects 1 Answer
How do you move did with [iTWEEN] the enemy has a component of [Character Controller]? 0 Answers