I need help with some health code:
var maxHealth : int = 100;
var currentHealth : int = 100;
function Update () {
if(currentHealth < 0) {
currentHealth = 0;
}
if(currentHealth > maxHealth) {
currentHealth = 0;
}
if(maxHeath < 1) {
maxHealth = 1;
}
if(currentHealth < 0) {
Application.LoadLevel ("Gameover");
}
}
function OnGUI() {
if(GUI.Button ( Rect ( 150, 10, 100, 35) , "Health"))
}
To me: it looks fine To Unity: 2 errors
The errors are:
Assets/PlayerHealth.js(19,1): BCE0044: expecting }, found ''.
Assets/PlayerHealth.js(18,63): BCE0043: Unexpected token: }.
Help please?
You aren’t doing anything after that if(GUI.Button… !! You need something to happen in response to the if condition - or if you don’t care and just want a button on screen drop the if( and add a ; on the end.
function OnGUI() {
if(GUI.Button ( Rect ( 150, 10, 100, 35) , "Health")) {
//Do something if the button is pressed
}
}
i have a script you could use, except it doesnt have game over:
using UnityEngine;
using System.Collections;
public class PlayerHealth : 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, 10, healthBarLength, 20), curHealth + "/" + maxHealth);
}
public void AddjustCurrentHealth(int adj) {
curHealth += adj;
if(curHealth < 1)
curHealth = 1;
if(curHealth > maxHealth)
curHealth = maxHealth;
if(maxHealth < 1)
maxHealth = 1;
healthBarLength = (Screen.width / 2) * (curHealth / (float)maxHealth);
}
}