- Home /
Question by
Rambit · Mar 20, 2013 at 10:25 PM ·
c#guiscalinghealth bar
GUI box scaling issue [C#]
Hi there.
I am making a health bar (I have tried several different ways to do this, and they all have the same problem) and I have got it to scale down according to the health(from 100 to 0).
But when it reaches 10(the health number is also being shown in the GUI), it starts scaling the Y aswell.
Code:
using UnityEngine;
using System.Collections;
public class BaseHealthBar : MonoBehaviour
{
public float barDisplay;
public float maxHealth = 100;
public Vector2 pos = new Vector2(20,40);
public Vector2 size = new Vector2(60,20);
public Texture2D emptyTex;
public Texture2D fullTex;
public GUIStyle emptyStyle;
void OnGUI()
{
// Background
GUI.BeginGroup(new Rect(pos.x, pos.y, size.x, 30));
GUI.Box (new Rect(0, 0, size.x, 30), emptyTex, emptyStyle);
// Bar
GUI.BeginGroup(new Rect(0,0, size.x * barDisplay, 30));
GUI.Box (new Rect(0, 0, size.x * barDisplay, 30), fullTex, emptyStyle);
GUI.EndGroup();
GUI.EndGroup();
}
void Update()
{
size.x = barDisplay;
barDisplay = BaseBehaviour.baseHealth;
}
}
(BaseBehaviour.baseHealth is where the health is being controlled)
Any idea as of how I would stop the Y to scale?
Sorry for the bad wording, I am threading in uncharted terretiories here...
Comment
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Converting script to C# 1 Answer
Distribute terrain in zones 3 Answers
Curved health bar 0 Answers
Elements in draggable window do not remain fixed [SOLVED] 2 Answers