无法在层次结构中添加UI元素以进行预制

时间:2017-02-09 04:45:33

标签: unity3d

我有一个播放器预制件,当游戏通过网络管理器启动时产生,播放器预制件附有一个脚本(播放器健康),它将2个UI元素作为输入(DamageImage,HealthSlider)存在于层次结构中。我面临的问题是我无法在预制件中添加这些输入,导致对象引用未设置为对象错误。

试图通过将预制件放在层次结构中然后保存它来添加它们,但它没有帮助。

1 个答案:

答案 0 :(得分:3)

如果UI元素不在预制件本身或其中一个子元素中,那么一旦制作预制件,您将失去参考。

您可以做的是将这些元素的标记设置为“DamageImage”和“HealthSlider”,然后在附加到预制件的PlayerHealth脚本的Awake()函数中执行此操作:

void Awake(){
  DamageImage = GameObject.FindWithTag("DamageImage").GetComponent<Image>();
  HealthSlider = GameObject.FindWithTag("HealthSlider").GetComponent<Slider>();
}