有的时候需要看一下Unity UI如何实现的,或者学习一下,需要加入到项目中进行调试。
首先下载Unity UI源码,网址https://bitbucket.org/Unity-Technologies/ui
1.编译整个项目,得到在Output目录(E:\Project\Unity\UnityUICode\Unity-Technologies-ui-a3f89d5f7d14\Output)下得到编译结果如下:
2.首先将Unity的GUISystem目录下的文件备份一下,万一操作有问题可以还原。
3.将源码编译结果拷贝到Unity的GUISystem目录(D:\Unity\Util\Unity\Editor\Data\UnityExtensions\Unity\GUISystem)下,替换。把原来的UnityEngine.UI.dll.mdb文件删除。因为刚刚编译出来的调试信息文件是pdb,而mono的调试信息文件是mdb。因此我们需要用pdb2mdb工具将它进行。转换工具:D:\Unity\Util\Unity\Editor\Data\MonoBleedingEdge\lib\mono\4.5\pdb2mdb.exe。
4.cmd到D:\Unity\Util\Unity\Editor\Data\UnityExtensions\Unity\GUISystem目录下,把上一步的pdb2mdb.exe整个目录输入到命令行, 再加上UnityEngine.UI.dll,如下图:
5.报错如下:
这个报错是转换工具不对,重新下一个
http://pan.baidu.com/s/1c1tYicg
https://gist.github.com/jbevain/ba23149da8369e4a966f
6.重新执行第四步,转换成功的UnityEngine.UI.dll.mdb生成在D:\Unity\Util\Unity\Editor\Data\UnityExtensions\Unity\GUISystem下。
7.D:\Unity\Util\Unity\Editor\Data\UnityExtensions\Unity\GUISystem\Editor目录和D:\Unity\Util\Unity\Editor\Data\UnityExtensions\Unity\GUISystem\Standalone下的UnityEngine.UI.dll.mdb删掉,也重新生成。
8.打开Unity项目,运行会报错:.error CS1704: An assembly with the same name `UnityEngine.UI' has already been imported.把Unity项目的Library删除,重新导入,运行Unity。
9.再用VS打开Unity UI源码,操作如下:
就可以断点调试了