Unity Ninja Unity 3D Forum
To have exclusive access to all downloads, recourses and links within this forum, a free registered account is required. Just a heads up Wink

You are not connected. Please login or register

Unity Ninja Unity 3D Forum » FREE Project Downloads & Recources » Scripts » Health Bar

Health Bar

View previous topic View next topic Go down  Message [Page 1 of 1]

1 Health Bar on Thu Sep 04, 2014 4:32 pm

Ninjaboy follower


Member [Lv. 3]
Member [Lv. 3]
This is a health bar script attach it to your player and fill out the texture variables in the inspector and modify some of the lines according to your game.
Code:

#pragma strict

//Size of Textures

var size : Vector2 = new Vector2(240, 40);

//Health Variables
var healthPos : Vector2 = new Vector2(20, 20);
var healthBarDisplay : float = 1;
var healthBarEmpty : Texture2D;
var healthBarFull : Texture2D;

//Hunger Variables
var hungerPos : Vector2 = new Vector2(20, 60);
var hungerBarDisplay : float = 1;
var hungerBarEmpty : Texture2D;
var hungerBarFull : Texture2D;

//Thirst Variables
var thirstPos : Vector2 = new Vector2(20, 100);
var thirstBarDisplay : float = 1;
var thirstBarEmpty : Texture2D;
var thirstBarFull : Texture2D;

//Stamina Variables
var staminaPos : Vector2 = new Vector2(20, 140);
var staminaBarDisplay : float = 1;
var staminaBarEmpty : Texture2D;
var staminaBarFull : Texture2D;

//Fall Rate
var healthFallRate : int = 150;
var hungerFallRate : int = 150;
var thirstFallRate : int = 100;
var staminaFallRate : int = 35;

private var chMotor : CharacterMotor;
private var controller : CharacterController;

var canJump : boolean = false;

var jumpTimer : float = 0.7;

function Start()
{
   chMotor = GetComponent(CharacterMotor);
   controller = GetComponent(CharacterController);
}

function OnGUI()
{
   //Health GUI
   GUI.BeginGroup(new Rect (healthPos.x, healthPos.y, size.x, size.y));
   GUI.Box(Rect(0, 0, size.x, size.y), healthBarEmpty);
   
   GUI.BeginGroup(new Rect (0, 0, size.x * healthBarDisplay, size.y));
   GUI.Box(Rect(0, 0, size.x, size.y), healthBarFull);
   
   GUI.EndGroup();
   GUI.EndGroup();
   
   //Hunger GUI
   GUI.BeginGroup(new Rect (hungerPos.x, hungerPos.y, size.x, size.y));
   GUI.Box(Rect(0, 0, size.x, size.y), hungerBarEmpty);
   
   GUI.BeginGroup(new Rect (0, 0, size.x * hungerBarDisplay, size.y));
   GUI.Box(Rect(0, 0, size.x, size.y), hungerBarFull);
   
   GUI.EndGroup();
   GUI.EndGroup();
   
   //Thirst GUI
   GUI.BeginGroup(new Rect (thirstPos.x, thirstPos.y, size.x, size.y));
   GUI.Box(Rect(0, 0, size.x, size.y), thirstBarEmpty);
   
   GUI.BeginGroup(new Rect (0, 0, size.x * thirstBarDisplay, size.y));
   GUI.Box(Rect(0, 0, size.x, size.y), thirstBarFull);
   
   GUI.EndGroup();
   GUI.EndGroup();
   
   //Stamina GUI
   GUI.BeginGroup(new Rect (staminaPos.x, staminaPos.y, size.x, size.y));
   GUI.Box(Rect(0, 0, size.x, size.y), staminaBarEmpty);
   
   GUI.BeginGroup(new Rect (0, 0, size.x * staminaBarDisplay, size.y));
   GUI.Box(Rect(0, 0, size.x, size.y), staminaBarFull);
   
   GUI.EndGroup();
   GUI.EndGroup();
}

function Update()
{
   //HEALTH CONTROL SECTION
   if(hungerBarDisplay <= 0 && (thirstBarDisplay <= 0))
   {
      healthBarDisplay -= Time.deltaTime / healthFallRate * 2;
   }
   
   else
   {
      if(hungerBarDisplay <= 0 || thirstBarDisplay <= 0)
      {
         healthBarDisplay -= Time.deltaTime / healthFallRate;
      }
   }
   
   if(healthBarDisplay <= 0)
   {
      CharacterDeath();
   }
   
   //HUNGER CONTROL SECTION
   if(hungerBarDisplay >= 0)
   {
      hungerBarDisplay -= Time.deltaTime / hungerFallRate;
   }
   
   if(hungerBarDisplay <= 0)
   {
      hungerBarDisplay = 0;
   }
   
   if(hungerBarDisplay >= 1)
   {
      hungerBarDisplay = 1;
   }
   
   //THIRST CONTROL SECTION
   if(thirstBarDisplay >= 0)
   {
      thirstBarDisplay -= Time.deltaTime / thirstFallRate;
   }
   
   if(thirstBarDisplay <= 0)
   {
      thirstBarDisplay = 0;
   }
   
   if(thirstBarDisplay >= 1)
   {
      thirstBarDisplay = 1;
   }
   
   //STAMINA CONTROL SECTION
   if(controller.velocity.magnitude > 0 && Input.GetKey(KeyCode.LeftShift))
   {
      chMotor.movement.maxForwardSpeed = 10;
      chMotor.movement.maxSidewaysSpeed = 10;
      staminaBarDisplay -= Time.deltaTime / staminaFallRate;
   }
   
   else
   {
      chMotor.movement.maxForwardSpeed = 6;
      chMotor.movement.maxSidewaysSpeed = 6;
      staminaBarDisplay += Time.deltaTime / staminaFallRate;
   }
   
   //JUMPING SECTION
   if(Input.GetKeyDown(KeyCode.Space) && canJump == true)
   {
      staminaBarDisplay -= 0.2;
      Wait();
   }
   
   if(canJump == false)
   {
      jumpTimer -= Time.deltaTime;
      chMotor.jumping.enabled = false;
   }
   
   if(jumpTimer <= 0)
   {
      canJump = true;
      chMotor.jumping.enabled = true;
      jumpTimer = 0.7;
   }
   
   //COMMENTED THESE SECTIONS OUT - UPDATED 16/07/14
   //if(staminaBarDisplay <= 0.05)
   //{
      //canJump = false;
      //chMotor.jumping.enabled = false;
   //}
   
   //else
   //{
      //canJump = true;
      //chMotor.jumping.enabled = true;
   //}
   
   if(staminaBarDisplay >= 1)
   {
      staminaBarDisplay = 1;
   }
   
   if(staminaBarDisplay <= 0)
   {
      //ADDED line 181 here!
      staminaBarDisplay = 0;
      canJump = false;
      chMotor.jumping.enabled = false;
      chMotor.movement.maxForwardSpeed = 6;
      chMotor.movement.maxSidewaysSpeed = 6;
   }
}

function CharacterDeath()
{
   Application.LoadLevel("SIMPLELEVEL");
}

function Wait()
{
   yield WaitForSeconds(0.1);
   canJump = false;
}

View user profile

2 Re: Health Bar on Thu Sep 04, 2014 6:04 pm

Nice to see you helping out the community with these scripts! look forward to see more from you!

View user profile http://www.youtube.com/user/misterninjaboy

3 Re: Health Bar on Fri Sep 05, 2014 5:47 pm

DeveloperLuke


Moderator
Moderator
Cool Script... Check out my tutorial its very helpful...... Mad Laughing Laughing Laughing Laughing

View user profile

4 Re: Health Bar on Fri Sep 05, 2014 10:34 pm

Ninjaboy follower


Member [Lv. 3]
Member [Lv. 3]
wooden_sword789 wrote:Cool Script... Check out my tutorial its very helpful...... Mad Laughing Laughing Laughing Laughing

Thanks but I don't use JS anymore

View user profile

5 Re: Health Bar on Sun Sep 07, 2014 3:02 pm

DeveloperLuke


Moderator
Moderator
the enum still works for c#
but the if() doesnt

View user profile

6 Re: Health Bar on Tue May 19, 2015 9:31 pm

Segahogzombie


Member [Lv. 1]
Member [Lv. 1]
wooden_sword789 wrote:Cool Script... Check out my tutorial its very helpful...... Mad Laughing Laughing Laughing Laughing
can u give me the link to it?the video plz im having trouble adding it

View user profile

7 Re: Health Bar on Mon Oct 26, 2015 3:17 am

Eruditul


Member [Lv. 0]
Member [Lv. 0]
Hi man i get the error: CharacterMotor is invalid type (not found) did you mean "UnityEngine.CharacterJoint"?

View user profile

View previous topic View next topic Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum