- Home /
Detect if player is in range?
Trying to detect if the play is within range of the enemy for a simple AI script. It's been a while since i last coded so I am suffering memory loss lol. I tried OnCollisionEnter, OnTriggerEnter, but was having trouble remembering, Rigid body on just one? or Both? Collider on one or both? is trigger isn't trigger? is Kinematic isn't kinematic? So I thought well lets just detect distance on a Vector3 but not even that is working for me now. Here is what I have, let me know some tips, or any advice to solve this issue.
 using UnityEngine;
 using System.Collections;
 
 public class EnemyAI : MonoBehaviour {
 
     public GameObject target;
 
     public int maxRange;
     public int minRange;
     private Vector3 targetTran;
     // Use this for initialization
     void Start () 
     {
         target = GameObject.FindWithTag("Player");
         targetTran = target.transform.position;
     }
     
     // Update is called once per frame
     void Update () 
     {
         if ((Vector3.Distance(transform.position, target.transform.position) < maxRange)
            && (Vector3.Distance(transform.position, target.transform.position) > minRange))
         {
             transform.LookAt(targetTran);
             transform.Translate(Vector3.forward * Time.deltaTime);
         }
     }
 }
 
If this is attached to the AI in the vector3.distance try target.transform.position, this.transform.position perhaps.
Your answer
 
 
             Follow this Question
Related Questions
Detect if player is in range? 2 Answers
Distance destroy object 3 Answers
Edit this script so that the player stops at a distance and attack? 0 Answers
Unity Enemy Range detection 3 Answers
How to stop enemy within certain distance of player? 2 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                