- Home /
 
              This question was 
             closed Jan 10, 2019 at 05:11 PM by 
             el-mas-pro-470 for the following reason: 
             
 
            DO-NOT-ANSWERED
 
               Question by 
               el-mas-pro-470 · Jan 10, 2019 at 02:41 PM · 
                raycastenemyraycastingenemy aienemyai  
              
 
              How to make a Raycast enemy?
Hi, I have created a script for an enemy but, it has a RADIAL view range, that is, if I am behind it it detects me the same, Supposedly it can be created with Raycast but I do not know, I searched but nothing, Someone knows some method? Thank you! Here is my script:
 using UnityEngine;
 using System.Collections;
 
 public class Enemy : MonoBehaviour {
 
     public Transform Target;
     public Animator Animador;
     public float Distancia = 30;
     public float LastDistance = 50;
     public float VisionAngle;
     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
              
 
               
              Follow this Question
Related Questions
enemy raycast to detect player 1 Answer
Enemy raycast detection 0 Answers
Enemy AI using raycasting.. **Solved** 2 Answers
how do i make enemy ai chase player 0 Answers
Enemy not jumping using Raycast 1 Answer