- Home /
Unity 3D enemy stop distance?
Hi,
I am trying to make my enemy stop when it's near the player...right now it follows me but when it's near me it starts to ram me or makes circles around me! How can I make my enemy stop when he is near me like distance 4...I want to stop my enemy 100%! My enemy script is:
var target : Transform; var moveSpeed = 3; var rotationSpeed = 3;
var myTransform : Transform;
function Awake() { myTransform = transform; }
function Start() { target = GameObject.FindWithTag("Player").transform;
}
function Update () { //rotate to look at the player myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
//move towards the player
myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
}
Answer by Blankzz · Jul 24, 2011 at 06:52 PM
Deleted my other post because I was being lazy. Try this instead.
var moveSpeed = 3;
var rotationSpeed = 3;
var distanceFromTarget : float = 4.0;
private var _currentDistance : float = 0;
private var _target : Transform;
function Start()
{
target = GameObject.FindWithTag("Player").transform;
}
public void update
{
_currentDistance = Vector3.Distance(_target.position, this.transform.position);
//put inside if statement if you want the enemy to stop looking at the target also
this.transform.rotation = Quaternion.Slerp(this.ransform.rotation, Quaternion.LookRotation(_target.position - this.transform.position), rotationSpeed*Time.deltaTime);
if(_currentDistance <= distanceFromTarget)
{
this.transform.position += this.transform.forward * moveSpeed * Time.deltaTime;
}
}
Your answer
Follow this Question
Related Questions
Look at closer to player 1 Answer
Distance destroy object 3 Answers
Check Between Enemy List 1 Answer
How to stop enemy within certain distance of player? 2 Answers
How to make player stop a certain distance away from enemy? 1 Answer