How do you get a GUI text to display a var like health?
var currentHealth = 100;
var maxHealth = 100;
var healthPercent = 100;
var damageTaken;
function Update()
{
healthPercent = healthUpdate()/maxHealth;
//Add if statements for the GUI Textures to appear on screen...
}
function healthUpdate(damageTaken)
{
//Do the broadcast message to this function.
currentHealth = currentHealth-damageTaken;
return currentHealth;
}
Read up on broadcast message here: http://unity3d.com/support/documentation/ScriptReference/GameObject.BroadcastMessage.html
Did this off top of my head, some might be wrong, I think it's good though...
You can display text on screen using GUI.Label
http://unity3d.com/support/documentation/ScriptReference/GUI.Label.html
Javascript:
function OnGUI () {
GUI.Label (Rect (10, 10, 100, 20), "Hello World!");
}
public float health = 100f;
void Update () {
if (health <= 0)
{
removePlayer();
}
else if (health <= 99)
{
print("health is now: "+health);
GameObject.Find("g_Health").guiText.text = ""+health;
}
That works as it is similar to one that I use in one of my games I half finished. everytime your health is deducted by a monster/ enemy void update checks to see if it is below 99 and if it is it renders the new number of HP you have. If your health <= 0 it calls removePlayer () which controlls dying.
Peace,
1) Expose the variable `public var health:int` in the script tracking health - call it GameLogic.js
-
Create a GUIText - GUI.Label, etc… Put a script HealthDisplay in it, but use an exposed public variable named
txt
for your string -
In the
Update()
event of GameLogic, put something like this:GetComponent(HealthDisplay).txt = health;