I have health bar textures and a working health system but how do i make it into a bar? so how would i change between the images according to how much health is left out of 100??
You can try this tutorial if you want to create a dynamic health bar that also changes color according to the amount of health left. This is all done with the new UI from UNITY 4.6: Health bar turorial
Answer by duck
May 13, 2010 at 03:14 PM
Have a look at this answer, which gives source code for display health bars using the new GUI system.
works great thanks I had to change it a bit to make it for health and get rid of the box around it but otherwise it works perfectly!
the link doesn't seem to work anymore. can you make a new one? Thanks!
duck's link probably went to this question: http://answers.unity3d.com/questions/11892/how-would-you-make-an-energy-bar-loading-progress.html
fixed the link!
If you would like to use the new Unity UI system to create a Health bar. Go to this link
Health Bar Unity 4.6
Answer by spinaljack
May 13, 2010 at 02:10 PM
There's plenty of tutorials with health bars in them. Take a look at the 3D platformer tutorial, it has a round health bar but I'm pretty sure you can work out how to make a straight one. Also take a look at UnityGUI guide.
Answer by RyanZimmerman87
Feb 08, 2013 at 10:37 AM
Here is a way to set this up for the player's health in case anyone is looking for that solution in the future (in C#).
This will work perfectly if you have a script attached to your main character (in this example PlayerMoveScript) with two public static variables for the player's current health (playerHealth), and their maximum health (playerHealthTotal). Just make sure that their maximum health is a float or the division will not work properly.
You can create two textures in Photoshop and size them to be identical to the Vector 2 (size) variable. Once you import the textures into Unity (.PSD extension works fine) you can switch the texture type from Texture to GUI in the Inspector.
Hope this helps someone!
public class PlayerHealthBarScript : MonoBehaviour
public GUIStyle progress_empty;
public GUIStyle progress_full;
public float barDisplay;
Vector2 pos = new Vector2(10,50);
Vector2 size = new Vector2(250,50);
public Texture2D emptyTex;
public Texture2D fullTex;
//draw the background:
GUI.BeginGroup(new Rect(pos.x, pos.y, size.x, size.y), emptyTex, progress_empty);
GUI.Box(new Rect(pos.x, pos.y, size.x, size.y), fullTex, progress_full);
//draw the filled-in part:
GUI.BeginGroup(new Rect(0, 0, size.x * barDisplay, size.y));
GUI.Box(new Rect(0, 0, size.x, size.y), fullTex, progress_full);
//the player's health
barDisplay = PlayerMoveScript.playerHealth/PlayerMoveScript.playerHealthTotal;
Answer by awplays49
Jan 23, 2015 at 01:24 PM
I know this has been answered a ton of times, but I thought I'd answer it :)
My way of doing this:
Make a UI slider and leave the canvas properties the same. Turn off interactable in the properties of the slider.
Make a health variable in a script attached to the player.
Make a public GameObject variable in a script attached to the healthbar. Drag the player in.
Make a public Slider and do
SliderVar = GetComponent ();
SliderVar being the slider type variable.
Write this code in update:
SliderVar.value = PlayerVar.GetComponent ().HealthVar;
PlayerVar being the public GameObject you wrote in the health script, PlayerScript being the player's script, and HealthVar being the health variable in the player's script.
Hope this helps :-)
Answer by Deatrock
Jul 30, 2014 at 05:13 AM
And you know, you can use horizontal slider its just 1 line of code
Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
The best place to ask and answer questions about development with Unity.
To help users navigate the site we have posted a site navigation guide.
If you are a new user to Unity Answers, check out our FAQ for more information.
Make sure to check out our Knowledge Base for commonly asked Unity questions.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
Answers and Comments
12 People are following this question.
Setting Scroll View Width GUILayout
GetComponentInChildren(Renderer).active wont work?
Realistic Bouncing Effect
Show "Score:5" on my screen, how?