Unity修改并且调试UGUI源码
鉴于Unity提供了Editor和UI的源码,那么一定有方式来实现源码在开发工程实时debug,几经查找资料最后汇总成此文章。一、效果展示
先来看一下效果,下图展示了在项目中实时调试 Button 点击事件,可以看到 UnityEngine.UI 的调用堆栈。
二、准备工作
下载下方列出的相应文件以作备用。
UGUI源码
推荐使用 SourceTree hg 工程PDB2MDB
A GUI tool to convert .NET .pdb files to Mono .mdb files.
三、核心操作
1. 编译UGUI源码
将 git 工程切换到正确分支,如《上古卷轴:传奇》现在使用的是 2017.4.29f1,UGUI 对应的 TAG 为 2017.4.16f1。
双击 UGUI 目录下的 UISystem.sln 以通过 VS 打开工程,随后依次重新生成 UnityEditor.UI、UnityEngine.UI 和 UnityEngine.UI-Editor,目标文件将生成在 Ouput 目录下。
下图展示了文件生成过程和结果。
2. 替换Unity下的UGUI文件
将上一步生成的文件拷贝到Unity所在安装路径,路径如下图所示。
3. 生成调试符号
使用 VS 打开 PDB2MDB 工程,运行工程,将 UnityEngine.UI.dll 拖入工程框,生成对应 mdb 文件。
3.1 运行 PDB2MDB
3.2 生成 mdb 文件
4. 在开发工程中添加 UnityEngine.UI 源码
使用 vs 打开游戏开发工程,在 右键解决方案 → 添加 → 现有项目,在打开的界面依次添加 UGUI 目录中 UnityEditor.UI、UnityEngine.UI 和 UnityEngine.UI-Editor 的 *.csproj 文件。
5. 添加断点
找到需要调试的文件,在对应位置添加断点即可。
四、结束
结束
参考资料:
https://zhuanlan.zhihu.com/p/64185440
https://bitbucket.org/Unity-Technologies/ui/src/2019.1
https://forum.unity.com/threads/running-pdb2mdb-with-unity-5-and-later.390456
页:
[1]