I am making an ai that attacks enemies in my scene. So far it is able to target 1 enemy and fire projectiles at it. but it runs into the enemy and pushes it back. What I want it to do is stop moving towards it, when it is within a certain distance from the enemy.
Here is my script:
#pragma strict
var target : Transform;
var moveSpeed = 20;
var rotationSpeed = 5;
var myTransform : Transform;
var turret : Transform;
var damp = 1.0;
var bullet : Transform;
var bulletSpawn : Transform;
var timer = 0.0;
function Awake() {
myTransform = transform;
}
function Start() {
target = GameObject.FindWithTag("Enemy").transform;
}
function Update () {
myTransform.rotation = Quaternion.Slerp(myTransform.rotation,
Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
}
function OnTriggerStay (objectTriggered : Collider)
{
timer += Time.deltaTime;
if(objectTriggered.transform == target)
{
var rotate = Quaternion.LookRotation(target.position - turret.position);
turret.rotation = Quaternion.Slerp(turret.rotation, rotate, Time.deltaTime * damp);
if(timer>8.0)
{
Instantiate(bullet, bulletSpawn.position, bulletSpawn.rotation);
timer = 0.0;
}
}
}