Hey everybody I amtrying to get my enemy damage to work. I have my player to attack the enemy, and when he attacks the enemy he should die. I dont have any animation set up for the death, I just want the enemy to be destroyed. So far I have this
// sound clips:
var struckSound : AudioClip;
var health = 3;
function ApplyDamage( amount : int ) {
health -= amount;
// <- (update on-screen health displays here)
if (health < 0) {
Die();
}
else {
// <- (play "hurt" animation & sound here)
//audio.PlayOneShot(struckSound);
}
}
function Die() {
// now remove this gameObject from the scene:
Destroy(gameObject);
}
when I attack the enemy the editor stops and gives me the error the prefab you want to instantiate is null. What does this mean? I get this error everytime a run it.
Here's the PlayerHealth script but it has GUI problems:
var maxHealth : int = 100;
var curHealth : int = 100;
var healthBarLength : float ;
// Use this for initialization
function Start () {
healthBarLength = Screen.width / 2;
}
// Update is called once per frame
function Update () {
AddjustCurrentHealth(0);
}
function OnGUI() {
GUI.Box(new Rect(10, 10, healthBarLength, 20), curHealth + "/" + maxHealth);
}
function AddjustCurrentHealth(adj) {
curHealth += adj;
if(curHealth < 0)
curHealth = 0;
if (curHealth > maxHealth)
curHealth = maxHealth;
if(maxHealth < 1)
maxHealth = 1;
healthBarLength = (Screen.width / 2) * (maxHealth / curHealth);
}
and here's the EnemyAttack:
var target : GameObject;
var attackTimer : float = 2;
var coolDown : float = 2;
var damage : int = 10;
// Use this for initialization
function Start () {
attackTimer = 0;
coolDown = 2.0f;
}
// Update is called once per frame
function Update () {
if(attackTimer > 0)
attackTimer -= Time.deltaTime;
if (attackTimer < 0)
attackTimer = 0;
if(attackTimer == 0){
Attack();
attackTimer = coolDown;
}
}
function Attack() {
var distance = Vector3.Distance(target.transform.position, transform.position);
var direction = Vector3.Dot(target.transform.position - transform.position, transform.forward);
if(distance < 3) {
if(direction > 0) {
var go = GameObject.Find("Player");
go.GetComponent(PlayerHealth).AddjustCurrentHealth(-damage);
}
}
}