Unity:应用预制件时为空引用

我已经使用Unity几年了...而且我从未遇到过这个问题。

每当我尝试应用或还原预制件时,都会出现以下错误:

NullReferenceException:对象引用未设置为对象的实例UnityEditor.PrefabUtility.RegisterNewObjects(System.Collections.Generic.List 1 newHierarchy, System.Collections.Generic.List1层次结构,System.String actionName)(在C:/ buildslave / unity / build / Editor / Mono / ImportSettings / PrefabUtility.cs:121)

(下面的完整堆栈跟踪)

知道是什么原因吗?所做的更改似乎确实适用,我在树中四处移动了东西,并修改了值,它们确实适用。但是错误有点令人担忧,我宁愿没有错误。有什么想法/建议吗?

编辑:我被要求解释它与标记的重复问题有何不同。这不是简单地问“什么是空引用”。我完全知道一个空引用(正如我所说的,我已经使用Unity多年了)。这个问题与空引用的特定情况有关,在这种情况下,应用Unity预制件会在编辑器中导致空引用,并引用UnityEditor脚本(我没有写过)。


Smart猫小萌
浏览 507回答 2
2回答

紫衣仙女

我遇到了同样的问题,是的,我就像“我知道什么是NullReferenceException”一样,但是为什么它在这里发生呢?好吧,我可以告诉您原因,但是却不解决,但是我有解决方法。原因:Unity具有用于预制件的编辑器工具,因此您具有要应用的按钮,它将更新预制件,问题是Unity正在运行的脚本无法找到使预制件进行更新的基础路径,并且是的,我尝试删除并再次创建,我尝试重新打开项目,等等,而Unity仍未找到预制ID。快速观察,我删除了原来的预制件,然后创建了一个新的预制件,删除了游戏中的所有实例,只剩下了一个全新的预制件,当我创建了这个预制件的新实例时……错误仍然存在,我可以不会更新,所以这是Unity内部的事情,我们对此无能为力。解决方法:好消息是,我们有一个解决方法,将实例从“层次结构”拖动到“项目”,将鼠标悬停在预制件的顶部,直到其周围出现蓝色方块,然后释放对象,并确认要替换您的预制件将被更新。最后,Unity正在更新预制系统,每个人都在Unity 2018上庆祝,就像我们的团队刚刚赢得了世界杯决赛一样。相信很快这个问题将只是一个玩笑,但愿。
打开App,查看更多内容
随时随地看视频慕课网APP