【问题标题】:Unity : Destroy a GameObject that is part of a prefabUnity:销毁作为预制件一部分的游戏对象
【发布时间】:2021-07-28 08:08:53
【问题描述】:

控制台显示此错误:

Cannot destroy GameObject that is part of a prefab instance. UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

我很困惑。日志不会告诉您涉及哪个预制件或游戏对象。 你能帮帮我吗?

非常感谢您的回答!

【问题讨论】:

标签: unity3d destroy gameobject prefab


【解决方案1】:

很多时候,当您编辑预制件时,您会注意到其中一些可能是蓝色的,而另一些则没有颜色。蓝色表示它们在项目中保留对原始预制件的引用并且它们不是副本,因此对它们所做的任何更改都将对原始预制件本身进行,因此副本(克隆)的原始预制件是由。

为避免这种情况,您需要 unpack 预制件,以便您操作副本而不是原始参考。

错误可能是由于您正在销毁一些未解包的预制件,因此运行时GameObject.Destroy 无法销毁,即从场景中销毁克隆副本。

【讨论】:

    【解决方案2】:

    看起来您试图破坏未实例化到场景中的部分预制件。如果您需要在编辑器脚本中修改一些预制件,请参考PrefabUtility,但请注意,该类只能从 UnityEditor 访问。

    否则请仔细检查您的代码,也许您在预制实例化后使用了错误的对象引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      相关资源
      最近更新 更多