- Home /
zombie ai script
i put the script and attached it to my zombie but when it hits me and applys damage it stops then doesnt chase me. The Attack time starts counting up then doesn't stop please can you help me!!
var target : Transform; //the enemy's target
var moveSpeed = 3; //move speed
var rotationSpeed = 3; //speed of turning
var attackThreshold = 1.5; // distance within which to attack
var chaseThreshold = 10; // distance within which to start chasing
var giveUpThreshold = 20; // distance beyond which AI gives up
var attackRepeatTime = 1; // delay between attacks when within range
var Damage : float = 0.001;
private var chasing = false;
public var attackTime : float = 10;
var myTransform : Transform; //current transform data of this enemy
function Awake(){
myTransform = transform; //cache transform data for easy access/preformance
}
function Start(){
if (target == null && GameObject.FindWithTag("Player"))
target = GameObject.FindWithTag("Player").transform;
}
function Update () {
// check distance to target every frame:
var distance = (target.position - myTransform.position).magnitude;
if (chasing) {
//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;
// give up, if too far away from target:
if (distance > giveUpThreshold) {
chasing = false;
}
// attack, if close enough, and if time is OK:
if (distance < attackThreshold && Time.time > attackRepeatTime) {
target.SendMessageUpwards("ApplyDamage" , Damage , SendMessageOptions.DontRequireReceiver);
// Attack! (call whatever attack function you like here)
}
if (distance < attackThreshold) {
moveSpeed=0;
//stop when close enough
}
attackTime = Time.time+ attackRepeatTime;
}
else {
// not currently chasing.
// start chasing if target comes close enough
if (distance < chaseThreshold) {
chasing = true;
}
}
}
You change the movespeed to 0 when you meet the qualifications but you never turn the movespeed to any other value after the qualifications aren't met.
and I don't think you should use "target" variable, ins$$anonymous$$d use the tag player. unless that you are always the only one near the zombies.
Answer by Silicon · May 08, 2012 at 08:52 PM
You change the movespeed to 0 when you meet the qualifications but you never turn the movespeed to any other value after the qualifications aren't met.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Hunger system help - Money to be made 0 Answers
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
Need help with javascript AI 1 Answer
Zombie AI scripts 2 Answers