【问题标题】:Unity, identify line of code that produces the errorUnity,识别产生错误的代码行
【发布时间】:2023-02-07 21:25:33
【问题描述】:

伙计们,我是 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)

【问题讨论】:

  • 尝试关闭并重新打开统一。找到类似的论坛帖子here
  • 谢谢你!那奏效了。即使日志中有错误,但在游戏过程中一切正常。
  • 太棒了,乐于助人。我将把我的评论变成一个答案来结束这个问题。干杯

标签: c# visual-studio unity3d


【解决方案1】:

尝试关闭并重新打开统一。

发现了一个类似的论坛帖子here,其中指出:

这是 Unity 代码中的一个错误,它位于 UnityEditor.Graphs.DLL 中。

在删除和重新创建没有任何过渡的动画控制器时,它似乎最常发生。

【讨论】:

    【解决方案2】:

    比如空的地方是:你在代码里写了,Unity里没有,或者你在Unity里挂载错了;你在代码中写了一些值,但没有给它们赋值,导致一个空的报告; Button在代码中指定了Button的功能,但是在Unity中忘记绑定Button;代码中的命名与Unity中的命名不一致;一系列的问题都会导致空报表。报空后一定要仔细检查代码中是否有空格。值,Unity挂载是否有问题,等等一系列的细节。

    【讨论】:

      【解决方案3】:

      您可以尝试使用调试日志来检查您是否引用了对象的有效实例。根据我的经验,使用私有实例而不是公共实例(这是允许的,前提是您将其设为序列化字段)导致了这个问题。 在您的 C# 脚本中,要么执行类似的操作,要么公开该字段:

      [SerializedField]
      private Rigidbody2D mybody;
      

      但在大多数情况下,这个错误似乎是在您从层次结构或项目选项卡中删除游戏对象后出现的。在这种情况下,如here所述重新启动 Unity 应该可以解决它

      【讨论】:

        猜你喜欢
        • 2012-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-26
        • 2020-11-11
        • 2012-02-10
        相关资源
        最近更新 更多