-1
我有一个玩家预制,当游戏通过网络管理器启动时,玩家预制具有附加到它的脚本(玩家健康),需要2个UI元素作为输入(DamageImage ,HealthSlider)。我面临的问题是我无法在预制中添加这些输入,导致对象引用未设置为对象错误的实例。无法添加层次结构中的UI元素以预制
试图通过将预制件置于层次结构中然后保存它来添加它们,但它没有帮助。
我有一个玩家预制,当游戏通过网络管理器启动时,玩家预制具有附加到它的脚本(玩家健康),需要2个UI元素作为输入(DamageImage ,HealthSlider)。我面临的问题是我无法在预制中添加这些输入,导致对象引用未设置为对象错误的实例。无法添加层次结构中的UI元素以预制
试图通过将预制件置于层次结构中然后保存它来添加它们,但它没有帮助。
如果用户界面元素不在预制件本身或其子项中,那么一旦进行预制就会失去参考。
你可以做的是设置这些元素,像“DamageImage”和“HealthSlider”,然后在连接到您的预制一个你PlayerHealth脚本的觉醒()函数的标签做到这一点:
void Awake(){
DamageImage = GameObject.FindWithTag("DamageImage").GetComponent<Image>();
HealthSlider = GameObject.FindWithTag("HealthSlider").GetComponent<Slider>();
}
这并不是与层次结构有关,而是UI元素在未作为对象实例化时被引用为对象的事实。 –