2017-02-09 64 views
-1

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

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

+0

这并不是与层次结构有关,而是UI元素在未作为对象实例化时被引用为对象的事实。 –

回答

3

如果用户界面元素不在预制件本身或其子项中,那么一旦进行预制就会失去参考。

你可以做的是设置这些元素,像“DamageImage”和“HealthSlider”,然后在连接到您的预制一个你PlayerHealth脚本的觉醒()函数的标签做到这一点:

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