- Home /
Player attack script + enemy health
To all the people on this planet, I ask for a moment of your time to simple answer a question of my, if you have stayed this far, thanks.
Know onto business, I am wondering if anyone could help me with a little scripting problem that I am having, let me explain, I've downloaded the a simple health system from the Unity Asset store (Grid Digital - Simple Health System). Contain within this file, the health system seems to simple use a integer system, that pretty much seems to remove a unit of health ever time the player takes damage.
The following is the health script....
var OneHeart : Texture2D; //These variables contain the textures used for the gui.
var TwoHearts : Texture2D;
var ThreeHearts : Texture2D;
var FourHearts : Texture2D;
var NoHearts : Texture2D;
static var Hearts : int = 4; //This is the amount of hearts the character has.
function Update (){
if(Hearts == 4){ //These if statements change the Gui Texture based on the static var Hearts.
guiTexture.texture=FourHearts;
}
if(Hearts == 3){
guiTexture.texture=ThreeHearts;
}
if(Hearts == 2){
guiTexture.texture=TwoHearts;
}
if(Hearts == 1){
guiTexture.texture=OneHeart;
}
if(Hearts == 0){
guiTexture.texture=NoHearts;
}
if(Hearts > 4){ //These two if statements keep the static var Hearts within the 0-4 range.
Hearts = 4;
}
}
and this script is what removes health from the player...
var Amount : int = -1; //This is the amount of damage this does to the character.
function OnTriggerEnter (other : Collider) { //This checks for a collision. For this to work, the object needs to have a collider that is a trigger.
HeartsGui.Hearts +=Amount; //Applies the damage by sending the data to the HeartsGui.js.
//Destroy(gameObject); //Destroys the game object.
}
Know I was wondering if anyone could help me figure out how to make a script that pretty much removes 1 int of health from the enemy character, ever time the player hits him. Any help would be great.
Go dtí an chéad uair eile, slán leat
Answer by Obliviate · Jun 03, 2013 at 03:49 AM
Here is a EnemyHealth System that I am currently using...
using UnityEngine;
using System.Collections;
public class EnemyHealth : MonoBehaviour {
public int maxHealth = 100;
public int curHealth = 100;
public float healthBarLength;
// Use this for initialization
void Start () {
healthBarLength = Screen.width / 2;
}
// Update is called once per frame
void Update () {
AddjustCurrentHealth(0);
}
void OnGUI() {
GUI.Box(new Rect(10, 40, healthBarLength,20), curHealth + "/" + maxHealth);
}
public void AddjustCurrentHealth(int adj) {
curHealth += adj;
if(curHealth < 0)
curHealth = 0;
if(curHealth > maxHealth)
curHealth = maxHealth;
if(maxHealth < 1)
maxHealth = 1;
healthBarLength = (Screen.width / 4) * (curHealth / (float)maxHealth);
}
}
Let me know if this helps..
Your answer
![](https://koobas.hobune.stream/wayback/20220613091740im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
AI keeps attacking objects that are not player. 1 Answer
Enemy AI problems 2 Answers
Help implement such attacks 1 Answer
rigidbody enemy goes only forward, no damage delay. 2 Answers
Ai that applies damage in collision? 1 Answer