I do not know what is wrong. No console errors. Just everytime I shoot my enemy with raycast the health will not go down. Here is my code:
using UnityEngine;
using System.Collections;
public class health : MonoBehaviour {
public int DamageAmount=5;
public float TargetDistance;
public float AllowedRange=15;
public RaycastHit Shot;
public int maxhealth=50;
public int currenthealth;
//cant die
public bool invincible;
public bool dead;
//check if ou want to enable health regeneration
public bool regenerate;
//time between each generate
public float regenerationtime=0.8f;
//the timer
private float regtimer;
//amount of hp to regenerate per generate
public int regenerationamount=2;
private int healthsave;
public bool givereward;
private bool rewardgiven;
public int xptogive=10;
public int goldtogive=10;
// Use this for initialization
void Start () {
givereward=false;
AI ai=(AI)GetComponent("AI");
if(ai) ai.health=maxhealth;
currenthealth=maxhealth;
healthsave=maxhealth;
}
// Update is called once per frame
void Update () {
if (Physics.Raycast (transform.position, transform.TransformDirection (Vector3.forward), out Shot)) {
TargetDistance = Shot.distance;
if (TargetDistance < AllowedRange) {
Shot.transform.SendMessage ("LoseHealth", 10);
}
}
//tell ai when health is changed
if(healthsave>currenthealth|healthsave=maxhealth) currenthealth=maxhealth;
//if health is less than zero
if(currenthealth<=0){
//check if invincible if not death
if(invincible)dead=false;
else dead=true;
currenthealth=0;
}
//regenerate
if(regenerate){
if(currenthealth0){
regtimer+=Time.deltaTime;
if(regtimer>regenerationtime){
currenthealth=currenthealth+regenerationamount;
regtimer=0;
}
}
}
}
}