微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity:销毁属于预制件的游戏对象

如何解决Unity:销毁属于预制件的游戏对象

控制台向我显示错误

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

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

非常感谢您的回答!

解决方法

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

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

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

,

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。