I’ve looked around on the forums and answers, as well as google, and couldn’t find anything relevant to the issue I’m having. As the healthbar decreases in length, it also decreases in width. If you’d mind taking a look to see if there are any issues I’d appreciate it greatly.
Here is an example of what it looks like:

And here is the section of code that controlls it:
using UnityEngine;
using System.Collections;
public class HealthBarManager : MonoBehaviour {
public Texture2D PartyHealthbarOutline;
public Texture2D PartyHealthbarGreen;
public Texture2D PartyHealthbarYellow;
public Texture2D PartyHealthbarRed;
public string PartyMemberName;
public float PartyMemberMaxHealth;
public float PartyMemberCurHealth;
private float PartyMemberHealthRatio;
private float PartyHealthBarLength;
private float PartyHealthBarWidth;
void OnGUI () {
GUIStyle PartyMemberGUIStyle = new GUIStyle(GUI.skin.label);
PartyMemberGUIStyle.fontSize = 10;
PartyMemberGUIStyle.normal.textColor = Color.white;
GUI.Label(new Rect(20,70,170,80), PartyHealthbarOutline);
GUI.Label(new Rect(50,75,30,20), PartyMemberName, PartyMemberGUIStyle); //Display the Players name
DeterminePartyHealthbarColor();
}
public void DeterminePartyHealthbarColor() {
AdjustCurrentHealth(0);
if(PartyMemberCurHealth >= (PartyMemberMaxHealth - (PartyMemberMaxHealth / 3))) {
GUI.Label(new Rect(90.2f,78.49f,PartyHealthBarLength,60), PartyHealthbarGreen);
}
else if(PartyMemberCurHealth < (PartyMemberMaxHealth - (PartyMemberMaxHealth / 3)) & PartyMemberCurHealth >= (PartyMemberMaxHealth - ((PartyMemberMaxHealth / 3) * 2))) {
GUI.Label(new Rect(90.2f,78.49f,PartyHealthBarLength,60), PartyHealthbarYellow);
}
else if(PartyMemberCurHealth < (PartyMemberMaxHealth - ((PartyMemberMaxHealth / 3) * 2))) {
GUI.Label(new Rect(90.2f,78.49f,PartyHealthBarLength,60), PartyHealthbarRed);
}
else {
Debug.LogError("Healthbar color to use is unknown!");
}
}
public void AdjustCurrentHealth(int Adj) {
PartyMemberCurHealth += Adj;
if (PartyMemberCurHealth < 0)
PartyMemberCurHealth = 0;
if(PartyMemberCurHealth > PartyMemberMaxHealth)
PartyMemberCurHealth = PartyMemberMaxHealth;
if(PartyMemberMaxHealth < 1)
PartyMemberMaxHealth = 1;
PartyMemberHealthRatio = PartyMemberCurHealth / PartyMemberMaxHealth;
PartyHealthBarLength = 93 * PartyMemberHealthRatio;
}
}
Absolutely amazing! I never thought of just creating a GUISkin for it, this simplifies it tenfold. Sorry about the redundancies, I had just prototyped it out. Anyways, thank you for taking the time to post such a thorough answer :)
– Benifir