- Home /
Health UI, how to make player loose health
I have a script here for a player health system, i am struggling to figure out how to make it that if the player is touched by "enemy" they loose one health. Thanks
using UnityEngine; using System.Collections;
public class HealthSystem : MonoBehaviour { public int maxHealth = 3; public int currHealth = 3;
public float healthBarLength;
void Start ()
{
healthBarLength = Screen.width / 2;
}
void Update ()
{
AddjustCurrentHealth(0);
}
void OnGUI()
{
GUI.Box(new Rect(10, 10, healthBarLength, 20), currHealth + "/" + maxHealth);
}
public void AddjustCurrentHealth(int adj)
{
currHealth += adj;
if(currHealth > maxHealth)
currHealth = maxHealth;
if(currHealth < 0)
currHealth = 0;
if(maxHealth < 1)
maxHealth = 1;
healthBarLength = (Screen.width / 2) * (currHealth / (float)maxHealth);
}
}
Answer by bilo-lwabona · Nov 21, 2013 at 08:26 PM
You could use the OnCollisionEnter function. Here is a discussion of someone trying to do something similar. In the function definition, I suggest you check the tag of the colliding gameObject and only subtract health if where applicable (i.e. player vs enemy, but not player vs wall).
If you attach the script to the player object, you could also increase the player's health when they walk over a health pack, as another example of this function's usage.
Hope this helps!
Cheers
Bilo
Answer by rhysjura · Nov 22, 2013 at 12:23 AM
Couldn't get much from that.
I tried this but nothing happened when they collided
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "EnemyBall") { currHealth = currHealth - 1;
}
}
OnTriggerEnter will never be triggered when objects collide. This function is only useful when you tick the isTrigger property on a gameobject's collider. When this is the case, you won't be able to collide with the object, but can walk through it. It is used more for something like loading a new scene when one walks through a door, playing a sound when one enters a room, spawning enemies when one enters a certain area etc.
You did not use OnCollisionEnter ...
I think it would be a good idea to read the documentation of these 2 functions, which I have provided links for.
Cheers
Bilo
Your answer
![](https://koobas.hobune.stream/wayback/20220613122430im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Player Health 3 Answers
How to make health go down when objects collide 1 Answer
Die on collision doesnt work 2 Answers
how to make a player die on collision 2 Answers
Need help with health script 2 Answers