设置驻留在预制资产中的转换的父级被禁用以防止数据损坏

Setting the parent of a transform which resides in a Prefab Asset is disabled to prevent data corruption

我在 Unity 中一次又一次地遇到这个问题。我找不到解决方案。 我认为我的代码是正确的,但问题在哪里?

GameObject visual = Instantiate<GameObject>(placementObject[num], hit.point + visualOffset, Quaternion.identity); 
visual.transform.SetParent(parentObject.transform); <--- Causing error

有什么建议吗?感谢您的任何反馈!

你可以直接设置parent:

GameObject visual = Instantiate<GameObject>(placementObject[num], hit.point + visualOffset, Quaternion.identity, parentObject.transform); 

但在 Instantiate() 之后使用 SetParent 也应该有效。 检查parent对象是否不为空。

您正在尝试分配一个预制件而不是场景中对象实例的父项。

确保 parentObject 是实际对象而不是预制件(或者,如果您正在编辑预制件,请确保它是 内的实际对象预制件,而不是未引用的预制件本身)。