- Home /
Question by
assay · Jun 02, 2015 at 10:40 AM ·
unity 5javascriptenemyhealthbar
My healtbar is not change when i look another enemy
i have 2 enemy with health 120 and 100 healtbar GUI when the raycast is hit the collider that GUI is true, when the raycast hit enemy 120 the healtbar is 120 but when i see the enemy 100 the health bar is 120, vice versa, when i kill my enemy 120 the see enemy 100 the healt bar is 100, vice versa
what i want is the healtbar is change without killing my first look enemy
this is my hit code
#pragma strict
private var ViewHP : EnemyHP;
var guiShow : boolean = false;
private var enemyHP : int;
private var maxHP : int;
function Start ()
{
ViewHP = GameObject.FindWithTag("Musuh").GetComponent(EnemyHP);
enemyHP = ViewHP.enemyHP;
maxHP = ViewHP.maxHP;
ViewHP.enabled = false;
}
function Update ()
{
var fwd : Ray = Camera.main.ViewportPointToRay (Vector3(0.5,0.5,0));
var hit : RaycastHit;
if (Physics.Raycast (fwd, hit, 10))
{
if (hit.collider.gameObject.tag == "Musuh" )
{
guiShow = true;
}
if (enemyHP<=0.0)
{
ViewHP.enabled = false;
guiShow = false;
}
}
else
{
ViewHP.enabled = false;
guiShow = false;
}
}
and this is my healt bar view code
private var Show : EHPView;
private var guiShow : boolean = false;
var maxHP : int = 100.0;
var enemyHP : int = 100.0;
var detonationDelay : float = 0.0;
function Start ()
{
Show = GameObject.FindWithTag("Player").GetComponent(EHPView);
guiShow = Show.guiShow;
}
function MlebuDamage(damage:float)
{
if(enemyHP <= 0.0)
return;
enemyHP -= damage;
if(enemyHP <= 0.0)
Invoke("Detonate", detonationDelay);
}
function Detonate()
{
Destroy(gameObject);
gameObject.SetActiveRecursively(false);
}
function Update ()
{
}
function OnGUI ()
{
if (guiShow == true)
{
GUI.Box(Rect(5, 25, 55, 25), "HP");
GUI.Box(Rect(65, 25, 55, 25), enemyHP + "/" + maxHP);
}
}
Comment
Your answer
Follow this Question
Related Questions
Enemy following Player in range 2 Answers
Enemy death help 1 Answer
On TriggerEnter issues 1 Answer
Attack/Targeting Script Issue 1 Answer
Script sets color to multiple objects from instead of only one object with Random.range() 0 Answers