hey guys i’m having a problem, i want to my enemy health bar show up when my player is close to the enemy but i don’t know how to do it please can someone help me?
this is the enemy lifebar code:
using UnityEngine;
using System.Collections;
public class EnemyHealth : MonoBehaviour
{
public int MaxHealth = 100;
public int CurHealth = 100;
//public bool barradevida = false;
//public int maxDistance;
//public int minDistance;
public Transform target;
private Transform myTransform;
public Transform BarraInterface;
public float HealthBarLenght;
// Use this for initialization
void Start ()
{
//GameObject go = GameObject.FindGameObjectWithTag("Player");
//target = go.transform;
//maxDistance = 2;
//minDistance = 7;
HealthBarLenght = Screen.width / 4;
}
// Update is called once per frame
void Update ()
{
AdjustCurrentHealth (0);
}
public void OnGUI ()
{
GUI.Box (new Rect (900, 20, HealthBarLenght, 20), CurHealth + "/" + MaxHealth);
}
public void AdjustCurrentHealth (int adj)
{
CurHealth += adj;
if (CurHealth < 0)
CurHealth = 0;
//if(CurHealth == 0)
//GameObject.Destroy(gameObject);
//if(CurHealth == 0)
//GameObject.Destroy(GameObject.FindWithTag == "Enemy");
if (CurHealth <= 0) {
Destroy (gameObject);
}
if (CurHealth > MaxHealth)
CurHealth = MaxHealth;
if (MaxHealth < 1)
MaxHealth = 1;
HealthBarLenght = (Screen.width / 4) * (CurHealth / (float)MaxHealth);
//GameObject.Destroy(GameObject.FindWithTag == "Enemy");
}
}
AND this is my enemy AI code
using UnityEngine;
using System.Collections;
public class EnemyAI : MonoBehaviour {
public Transform target;
public int moveSpeed;
public int rotationSpeed;
public int maxDistance;
public int minDistance;
private Transform myTransform;
// isso serve para deixar as coisas mais rapidas, espero descobrir mais depois
void Awake() {
myTransform = transform;
}
// Use this for initialization
void Start () {
GameObject go = GameObject.FindGameObjectWithTag("Player");
target = go.transform;
maxDistance = 2;
minDistance = 7;
}
// Update is called once per frame
void Update ()
{
if(Vector3.Distance(target.position, myTransform.position) <= minDistance)
{
Debug.DrawLine(target.transform.position, myTransform.position, Color.yellow);
// olhar para o alvo
myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);
if(Vector3.Distance(target.position, myTransform.position) > maxDistance) {
//move até o alvo
myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
}
}
}
}