tags tutorialdevcode

Healthbar Code Snippet

Just about every game has some sort of health bar, magic bar or a stamina range with a minimum / maximum value. So I wanted to share how I code up these types of stat ranges in all my games.

The class is called StatRange – no surprise – and it really only has three properties value, min and max but the usefulness comes in with all the helper methods available.

This is how it’s used:

// inside a monobehaviour or where ever
StatRange health = new StatRange();

health.min = 0; // default is zero
health.max = 100;

health.Fill(); // health.value == max
health.value; // 100

// player took damage
health.value -= 10;
health.Clamp(); // keep value within bounds
// OR
health.Minus(10); // 90

// check player is dead
health.IsEmpty; // false

// check at full health
health.IsFull; // false

// easily display health in image / slider in Unity
slider.value = health.Percent; // returns 0 - 1 value
image.fillAmount = health.Percent;

// leveled up, increase max health and clamp
health.max += 10;
health.Clamp();

This is not only limited to health bars, it could be used for anything like it.

magic = new StatRange(0, 50); // init range with 0 - 50
magic.Fill();
magic.IsFull; // true

magic.Minus(10); // casted spell

// remove all mana
magic.Empty(); // 0

stamina = new StatRange(0, 10); // 0 - 10

stamina.Add(1); // add 1 stamina over time
if (stamina.IsFull) {
  // can use run ability
}

Let me know if you found this snippet helpful.

Download source code: StatRange.cs

Back to index