伙计们,我是 Unity 新手,我收到此错误,但无法修复它。为什么代码行没有签名?
NullReferenceException: Object reference not set to an instance of an object
UnityEditor.Graphs.Edge.WakeUp () (at <b82d8d0a349d4d70807c2fc5746a710f>:0)
UnityEditor.Graphs.Graph.DoWakeUpEdges (System.Collections.Generic.List`1[T] inEdges, System.Collections.Generic.List`1[T] ok, System.Collections.Generic.List`1[T] error, System.Boolean inEdgesUsedToBeValid) (at <b82d8d0a349d4d70807c2fc5746a710f>:0)
UnityEditor.Graphs.Graph.WakeUpEdges (System.Boolean clearSlotEdges) (at <b82d8d0a349d4d70807c2fc5746a710f>:0)
UnityEditor.Graphs.Graph.WakeUp (System.Boolean force) (at <b82d8d0a349d4d70807c2fc5746a710f>:0)
UnityEditor.Graphs.Graph.WakeUp () (at <b82d8d0a349d4d70807c2fc5746a710f>:0)
UnityEditor.Graphs.Graph.OnEnable () (at <b82d8d0a349d4d70807c2fc5746a710f>:0)
尝试关闭并重新打开 unity。
在这里找到了类似的论坛帖子,其中指出:
这是Unity代码中的错误,该代码位于UnityEditor.Graphs.DLL中。
在删除和重新创建没有任何过渡的动画控制器时,它似乎最常发生。
比如空的地方是:你代码里写了但是Unity中没有,或者Unity中挂载错误;您在代码中写入了一些值,但没有为它们分配值,导致报告为空;代码中指定了Button的功能,但是忘记在Unity中绑定Button;代码中的命名与Unity中的命名不一致;一系列的问题就会导致一份空报告。空报之后,一定要仔细检查代码中是否有空的地方。 value、Unity挂载是否有问题等一系列细节。
您可以尝试使用调试日志来检查您是否引用了对象的有效实例。根据我的经验,使用私有实例而不是公共实例(这是允许的,前提是您将其设为序列化字段)导致了问题。 在您的 C# 脚本中,要么执行类似的操作,要么将该字段公开:
[SerializedField]
private Rigidbody2D mybody;
但在大多数情况下,当您从层次结构或项目选项卡中删除游戏对象后,似乎会出现此错误。在这种情况下,按照here所述重新启动Unity应该可以解决问题
就我而言,发生确切的错误是因为“动画器”选项卡出现问题并且无法绘制任何内容,因此您可以尝试关闭“动画器”选项卡并再次重新打开它。关闭 Unity 也可以,但它可以解决所有问题,而不仅仅是解决根本问题。
顺便说一句,为我工作。