【发布时间】:2019-01-20 19:24:42
【问题描述】:
我正在尝试在我的单位上实例化生命条,问题是生命条在第一波单位的画布上反复实例化,而其他 2 波得到空画布。 该脚本位于单元预制件上。 我在单独的脚本中实例化单位和健康栏。 我不明白我在这里做错了什么。
private Transform player;
private Image healthBar;
private Image barFilled;
public GameObject hpBarPrefab;
void Start()
{
minionExp = GetComponent<MinionExperience>();
initialHealth = MaxHealth;
healthBar = Instantiate(hpBarPrefab,
GameObject.FindObjectOfType<Canvas>().transform).GetComponent<Image>();
barFilled = new List<Image>(healthBar.GetComponentsInChildren<Image>()).Find(img => img != healthBar);
}
public void TakePlayer(Transform pl0)
{
player = pl0;
}
public Transform GetPlayer()
{
return player;
}
public void MinionsTakeDmg(int dmg)
{
MaxHealth -= dmg;
if (MaxHealth <= 0)
{
Destroy(gameObject);
MaxHealth = 0;
if (player != null)
player.GetComponent<Levels>().GainExp(minionExp.MaxMinionExp);
}
UpdateHealthBar();
}
public void UpdateHealthBar()
{
float fa = MaxHealth / initialHealth;
if (healthBar != null)
healthBar.fillAmount = fa;
}
【问题讨论】:
标签: unity3d