I have a player health bar and 3 lives
i want my script to go: if health bar current health =0 then take 1 from lives.
here are my scripts:
Health bar script
public int maxHealth = 100;
public int curHealth = 100;
public int Lives ;
public bool died;
public Texture2D bgImage;
public Texture2D fgImage;
public Text LivesText;
public float healthBarLength;
// Use this for initialization
void Start()
{
healthBarLength = Screen.width / 2;
died = false;
Lives = 3;
}
public void GiveLife()
{
Lives++;
}
public void TakeLife()
{
Lives--;
}
// Update is called once per frame
void Update()
{
AddjustCurrentHealth(0);
//show lives on gui
LivesText.text = "Lives: " + Lives;
if (died)
{
TakeLife();
// Debug.Log("you died", gameObject);
curHealth = 100;
}
if ( Lives <0)
{
Lives = 0;
}
if (died && Lives == 0)
{
// SceneManager.LoadScene(1);
}
}
void OnGUI()
{
// Create one Group to contain both images
// Adjust the first 2 coordinates to place it somewhere else on-screen
GUI.BeginGroup(new Rect(5, 5, healthBarLength, 32));
// Draw the background image
GUI.Box(new Rect(5, 5, healthBarLength, 32), bgImage);
GUI.EndGroup();
}
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 / 2) * (curHealth / (float)maxHealth);
}
}
player interaction script:
void OnTriggerEnter2D(Collider2D other)
{
//Health pick up add 40 to health
if (other.tag == "Health")
{
HealthBar.curHealth += 40;
}
// NME takes health of player
if (other.tag == "NME")
{
HealthBar.curHealth -= 10;
//makes player bounce if hit by enemy
Rigidbody2D rbOther = this.gameObject.GetComponent<Rigidbody2D>();
rbOther.AddForce(dir * 1500 );// *Time.deltaTime);
// Debug.Log(rbOther);
}
// if current health = 0 Died = true
if (HealthBar.curHealth == 0)
{
HealthBar.TakeLife();
HealthBar.died = true;
// Debug.Log(HealthBar.Lives);
}
if (HealthBar.curHealth >0)
{
HealthBar.died = false;
Debug.Log("you live again", gameObject);
}
}