找回密码
 立即注册
查看: 914|回复: 11

[笔记] UGUI源码调试和阅读的最佳方式

[复制链接]
发表于 2021-12-12 09:45 | 显示全部楼层 |阅读模式
Unity的ugui是作为一个插件放在Unity里面的,所以没有ugui,unity也一样能正常运行。基于这一点,用以下方法进行UGUI源码调试,会非常方便。
0. 准备工作


  • 根据自己电脑上的Unity安装目录,找到UGUI存放的地方。进入此目录(我电脑上的目录是D:\Program Files\Unity\Editor\Data\UnityExtensions\Unity)。
  • Unity目录下的GUISytem文件夹就是UGUI存放的地方。
  • 首先,备份此文件夹。
  • 然后,删除此文件夹。(再次进入Unity程序,会发现没有UI选项了)
  • 至此,准备工作做完。
1. 下载UGUI源码

可以在Unity官方开源的地方下载。
我下载的版本是2017.2f3,zip格式。



2. 拷贝UGUI代码至项目文件


  • 首先,打开Unity并创建一个新的项目。
  • 然后,把刚刚下载的UGUI源码中UnityEditor.UI、UnityEngine.UI两个文件夹,拷贝到刚刚新建的项目Assets目录下。
  • 删除两个文件夹里面的bin、obj和Properties文件夹,以及.csproj文件。这些都是不必要的内容,只保留源码。
  • UnityEditor.UI文件夹是UGUI的编辑器实现类,因为Unity中规定编辑器实现类必须以Editor命名,所以要将UnityEditor.UI改名为Editor。
  • 最后,重启Unity,再打开刚刚新建的项目(为了让加入的UI生效)。(至此,已经将UGUI源码添加到了项目里面,为源码调试做好了准备)
3. 源码调试测试


  • 右键创建一个UGUI的Button。
  • 然后在Button的Inspector面板里的Button(Script)处,右键-Edit Script,这样就打开了Button脚本的源码。





  • 在源码中Button.cs中找到Press()方法,并在方法内的第一行代码处打断点,然后点击附加到Unity,运行此脚本。





  • 然后回到Unity,运行这个项目,再点击Button按钮。你会发现刚刚的断点命中了。




这样调试源码就方便很多,以后学习UGUI源码就用这种方式。还有,unity的官方文档(在文档的UnityEngine.UI模块下)对UGUI的解释很清楚了,可以对照着看,会轻松很多。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-12-12 09:52 | 显示全部楼层
GUISytem删除后 会报  C:/Users/33239/AppData/Local/Unity/cache/packages/http://packages.unity.com/com.unity.package-manager-ui@1.8.8/Editor/Sources/Services/Packages/PackageInfo.cs(6,19): error CS0234: The type or namespace name `UI' does not exist in the namespace `UnityEngine'. Are you missing an assembly reference?
错误
发表于 2021-12-12 09:58 | 显示全部楼层
你是不是打开的项目文件里面已经引用了UI?你创建全新的工程打开试试。
发表于 2021-12-12 09:59 | 显示全部楼层
如果只是为了调试ugui源代码而不做修改的话,可以直接用JetBrains Rider  这个IDE吖,自带反编译工具的,还能看到调试 stl源码呢
发表于 2021-12-12 10:02 | 显示全部楼层
此方法只适用于新建工程进行源码学习调试使用。不适用于已有项目调试。
发表于 2021-12-12 10:07 | 显示全部楼层
同样的报错,创建全新的工程也没用。cache文件夹下packageInfo.cs中引用了UnityEngine.UI空间
发表于 2021-12-12 10:13 | 显示全部楼层
Rider天下第一
发表于 2021-12-12 10:21 | 显示全部楼层
Rider转到定义,跳转到源码里面断点,不止UGUI
发表于 2021-12-12 10:25 | 显示全部楼层
这个是package的问题,找到package manager卸载相关的package就可以了
发表于 2021-12-12 10:29 | 显示全部楼层
现在下载网页变404了,老哥有网盘吗
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-23 12:18 , Processed in 0.072734 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表