- Home /
RTS health bars
Hey everyone, I am trying to add a health bar to a moving unit in an RTS. When I apply my code I used for a tower object the health bar ends up in weird places. I just want to position it above the unit. It needs to be able to move with the unit, and stay with the unit if the camera moves. I tried this so far,
private void OnGUI(){
//health bar for player units
GUI.DrawTexture(new Rect (HealthBarPos.x,(Screen.height-HealthBarPos.y),length*(unitHealthBarLength/unitHealthBarMaxLength),5),selectionHighLight);
}
This code is attached to the unit, so I didnt need to reference it as an object...i think. Each time I run the code and have the first two parameters change the health bar always ends up in wierd places. Anyone have any ideas? Thanks,
Answer by zharik86 · Jun 01, 2014 at 08:24 AM
For your case, you need use function WorldToScreenPoint(). This function transfers world coordinates to screen coordinates. But you remember that to be transfer to pivot point. For example, for the sphere it is the center. I will write a small script for the explanation(write on CSharp):
public Texture2D tex = null;
void OnGUI() {
//Gets coordinate our object on screen
Vector3 scrPos = Camera.main.WorldToScreenPoint(this.transform.position);
//Sets texture for size, for example, 100x30
GUI.DrawTexture(new Rect(scrPos.x - 100/2.0f, Screen.height - scrPos.y - 30/2.0f, 100, 30), tex, ScaleMode.StretchToFill);
}
Attach this script to your object.
In general, I already answered similar questions. Watch my pregoing answer. I hope it to you will help.
@zharik86, Awesome dude. I guess I was mainly missing the world screen to point code. Great work! This is one of the most exact answers I've ever received on here.
Answer by Fr0stbite · Jun 01, 2014 at 07:51 AM
Make a GUIText and attach this script to that: http://wiki.unity3d.com/index.php?title=ObjectLabel
Your answer
![](https://koobas.hobune.stream/wayback/20220613150512im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
HealthBar with ColorChange 1 Answer
Health bar goes down instantly. 1 Answer
floating health bar above gameobject mobile game 1 Answer
Questions about GUI? 2 Answers
How to make a health bar? 1 Answer