我有一个播放器预制件,当游戏通过网络管理器启动时产生,播放器预制件附有一个脚本(播放器健康),它将2个UI元素作为输入(DamageImage,HealthSlider)存在于层次结构中。我面临的问题是我无法在预制件中添加这些输入,导致对象引用未设置为对象错误。
试图通过将预制件放在层次结构中然后保存它来添加它们,但它没有帮助。
答案 0 :(得分:3)
如果UI元素不在预制件本身或其中一个子元素中,那么一旦制作预制件,您将失去参考。
您可以做的是将这些元素的标记设置为“DamageImage”和“HealthSlider”,然后在附加到预制件的PlayerHealth脚本的Awake()函数中执行此操作:
void Awake(){
DamageImage = GameObject.FindWithTag("DamageImage").GetComponent<Image>();
HealthSlider = GameObject.FindWithTag("HealthSlider").GetComponent<Slider>();
}