- Home /
how to setup health, respawn/checkpoint, lives systems
Im making a 2D platformer and Ive set up a 3 heart health system that takes away hearts, similar to Klonoa games. Now while ive made sure that certain obstacles can one shot the player(pitfalls), when they take normal damage, it does nothing until I go past the current health(3)into the negative(-1) which then freezes the game. My health code is this: using UnityEngine; using System.Collections; public class HealthManager : MonoBehaviour { private LevelManager levelManager; //Health Points data public int curHealth; public int maxHealth = 3; // Use this for initialization void Start () { curHealth = maxHealth; } // Update is called once per frame void Update () { if (curHealth > maxHealth) { curHealth = maxHealth; if (curHealth <= 0) { Death() ; } } } public void Death () { //Restart from dying Application.LoadLevel(Application.loadedLevel); } public void Damage(int dmg) { curHealth -= dmg; } }
And my Damage code is this:
using UnityEngine; using System.Collections; public class HurtPlayer : MonoBehaviour { private HealthManager healthManager; void Start () { healthManager = FindObjectOfType<HealthManager> (); } void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Player") { healthManager.Damage(1); } } }
I at first had the health mixed in the player script, but I separated them to have an easier time when I try to add a "lives" system. I really would love some help here as I've been fighting with it for days.
Answer by Slatey · May 10, 2017 at 11:45 AM
Your update code will never execute the if(curHealth <= 0) {} because it is inside a check of if(curHealth > maxHealth) {}. So since curHealth will never be > maxHealth and <= 0 at the same time, it will never do the Death code.
No idea why it would be crashing though.
Ill look into this info you send, thank you. As for the crashing I think its due to an "array out of range" error that's not displaying on error log
Your answer
![](https://koobas.hobune.stream/wayback/20220612121613im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Save Player Health in between scene loading 1 Answer
2D platformer: how do we make ammo boxes respawn after a certain amount of time after pickup? 2 Answers
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Add Health on Pickup to Decaying Health,Make a collision with an object add health 2 Answers