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);
}
}
↧