Следующий скрипт наносит урон моему вражескому сборнику, но верхняя граница здоровья не соответствует его текущему здоровью. Вместо того, чтобы вносить изменения в соответствующую панель работоспособности, он только вносит изменения в первый экземпляр сборника в окне иерархии. Однако враги все равно будут уничтожены, если к ним будет применен правильный урон. Что-то, что нужно отметить, так это то, что изображение в баре здоровья является дочерним элементом холста, а холст является дочерним элементом основного сборника с прикрепленным к нему сценарием. Как я могу это исправить?Бары здоровья, которые работают независимо
using UnityEngine;
using System.Collections;
public class EnemyHealth : MonoBehaviour {
private float curHealth = 100f;
private float GunDamage;
private GameObject hb;
private GameObject gd;
private GameObject canvas;
public float maxHealth;
public string gunType;
void Start() {
canvas = GameObject.Find ("HealthCanvas");
hb = GameObject.Find ("HealthBar");
gd = GameObject.Find (gunType);
GunDamage = gd.GetComponent<Shoot>().bulletDamage;
}
public void SubtractHealth(float howMuch){
curHealth = curHealth - howMuch;
if (curHealth <= 0) {
Destroy (this.gameObject);
}
//Update health bar
hb.GetComponent<RectTransform>().sizeDelta = new Vector2 (hb.GetComponent<RectTransform>().sizeDelta.x - 0.95f/maxHealth * GunDamage , hb.GetComponent<RectTransform>().sizeDelta.y);
Debug.Log (curHealth);
}
}