Let me expand on this:
I’m creating a point and click RPG and I’ve reached an impass: The way I’m handling targeting right now is I’m only pulling 1 enemy from that enemies script and using it to get a target (I’ll show my code in a sec)
What I want to know is, what is the best way to get the target and pull it’s health, stats, etc…
Here is how I’m currently getting a singular target: [This is just how I’m finding the target, and displaying its health bar]
public Texture2D healthBar;
public Texture2D healthBarFrame;
private int healthBarWidth = 50;
private int healthBarHeight = 5;
private float left;
private float top;
private Vector3 healthBarScreenPosition;
public PlayerCombat player;
public Skeleton target;
public float healthPercent;
...
void Update () {
if(player.opponent != null) {
target = player.opponent.GetComponent<Skeleton>();
healthPercent = (float)target.skeletonCurHealth / (float)target.skeletonMaxHealth;
Vector3 healthBarWorldPosition = (target.transform.position + new Vector3(0.0f, target.transform.lossyScale.y, 0.0f));
healthBarScreenPosition = Camera.main.WorldToScreenPoint(healthBarWorldPosition);
left = healthBarScreenPosition.x - (healthBarWidth / 2);
top = Screen.height - (healthBarScreenPosition.y + (healthBarHeight / 2));
} else {
target = null;
healthPercent = 0;
}
}
void OnGUI() {
if (target != null) {
GUI.DrawTexture(new Rect(left, top, 50, 5), healthBarFrame);
GUI.DrawTexture(new Rect(left, top, (50 * healthPercent), 5), healthBar);
}
}
But now lets say I have another enemy, a spider or something, how could I get it’s health from its own script?
I have messed around with this sort of method:
void getTarget() {
if( Input.GetMouseButtonDown(0)) {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast( ray, out hit, 100)) {
Debug.Log(hit.transform.gameObject.name);
if (hit.transform.gameObject.tag == "Environment") {
player.GetComponent<PlayerCombat>().opponent = null;
attack = false;
} else {}
}
}
}
I guess what i’m asking is: What is the best way of handling this sort of targeting?
(sorry for the long post!)