- Home /
zombie script problem
in this script im having a few problems. 1)zombie stops chasing player after getting close to player 2)animations will not play when supposed to (ex. idle only plays when game starts, zombie walk animation does not play when zombie is walking) 3)zombie does not attack player. can someone help
zombie.js:
var target : Transform; //the enemy's target var moveSpeed = 10; //move speed var rotationSpeed = 9; //speed of turning var attackThreshold = 1.5; // distance within which to attack var chaseThreshold = 10000000; // distance within which to start chasing var giveUpThreshold = 20000; // distance beyond which AI gives up var attackRepeatTime = 1; // delay between attacks when within range
private var chasing = false; private var attackTime = Time.time;
var myTransform : Transform; //current transform data of this enemy
function Awake(){ myTransform = transform; //cache transform data for easy access/preformance }
function Start(){ target = GameObject.FindWithTag("Player").transform; //target the player }
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.SendMessage("ApplyDamage",10); // 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; } } }
function OnTriggerEnter (other: Collider) { if (other.gameObject.CompareTag("Bullet")){ chaseThreshold=100000000; } }
healthbar.cs
using UnityEngine;
using System.Collections;
public class healthbar : MonoBehaviour { public int maxHealth = 100; public int curHealth = 100;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnGUI() {
GUI.Box(new Rect(10, 10, Screen.width / 2 / (maxHealth / curHealth), 20), curHealth + "/" + maxHealth);
}
}
Later on can you please post a Health script that you have on your player, if you have one.
I see you are using GUI but not GUI Texture. If you want, I can post a health bar script written in Java that uses 10 Textures.
Your answer
Follow this Question
Related Questions
How can I make my Axe in unity do damage to my Zombies 6 Answers
zombie ai script(animation help) 0 Answers
Unity does not recognize reload animation for gun 1 Answer
Animation after 5 shots 1 Answer
Activating One Part of An Animation 2 Answers