为什么我不能调试UnityEngine.UI代码?

时间:2016-07-10 10:38:45

标签: unity3d

我将 UnityEngine.UI.dll 和UnityEditor.UI.dll与他们的mdb文件一起添加到我的assets文件夹中。我也将这两个项目添加到我当前的项目中。我确信所有的统一引擎ugui代码构建成功,因为我在事件系统中调试日志,并且它打印消息。当我想进入事件系统类时,我总是失败。我发现unity将从构建路径加载代码,而不是原始代码。为什么这样做?如果我想调试统一引擎ugui代码,我该怎么办?

1 个答案:

答案 0 :(得分:0)

要调试代码,您需要两件事:

  1. 符号,整个模块中使用的所有函数,类,变量的列表。当使用C ++时,符号存储在Windows上的特殊.pdb文件中(显然你使用的是Windows,因为你在谈论dll)。 C#中的符号(通常为.NET)存储在.dll本身中。有符号可以让你看到调用堆栈上的函数名称,可能还有一些变量,但仅此而已。

  2. 模块的源代码。

  3. U3D的源代码是专有的 - 你需要花很多钱才能收到它。如果我猜 - UnityEngine.UI.dll是一个C ++模块,删除了剥离(删除)符号。

    因此你没有,所以你不能在所有上调试U3D的代码

    为什么你还需要呢?如果你想看看大型游戏引擎的内部是如何工作的,还有很多其他的选择(例如UE4和Lumberyard)。如果您正在努力解决问题,并且希望能够通过调试解决问题......尽管运气好。你最好的选择是在团结社区中提问。