有道是, 工欲善其事, 必先利其器. 想研究代码, 最好的方式就是边修改边运行看看效果, 研究UGUI自然也不例外. 我们先看下如何搭建一个可以修改调试UGUI环境.

版本的选择

Unity在2019.1及之前版本, 以dll的形式提供UGUI, 并在GitHub提供了UGUI的C#源码下载(地址: https://github.com/Unity-Technologies/uGUI).

2019.2及以后版本, 使用PackageManager的形式提供UGUI及其源码, 但还是不方便进行修改和调试.

在当前最新的2021.2.3f1版本, UGUI的部分Text相关控件被标记为Legacy, 取而代之的是由TextMeshPro提供相关控件.

我选择了当前最新的2021.2.3f1版本(macOS), 相信此方法也适用2019.2以后版本. 至于2019.1及以前版本, 网上有很多教程, 大家可以参考一下.

操作步骤

  1. 新建项目

    使用2021.2.3f1版本新建项目, 建议用git将项目托管起来, 方便查看及保存修改记录.

  2. 复制插件

    我们需要将自带的UGUI插件先复制出来. 正常打开上一步中新建的项目, 将项目目录下Library/PackageCache下 com.unity.ugui@1.0.0 目录, 复制到 项目Assets目录. 可以将目录重命名为更简单的名字(比如ugui), 方便后序使用.

  3. 使用本地ugui插件

    打开Unity的 Package Manager 窗口, 选择 Add package from disk... 菜单后, 选择ugui目录下的 package.json 文件即可.

  4. 验证

    修改 UGUI目录下 Runtime/UI/Core/Button.cs , 找到 Press() 函数, 给其增加一行日志打印.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
private void Press()
{
    Debug.Log("Hello UGUI Button."); // 新增日志行

    if (!IsActive() || !IsInteractable())
	return;

    UISystemProfilerApi.AddMarker("Button.onClick", this);
    m_OnClick.Invoke();
}

给场景中增加一个 Button , 运行后点击一下, 看下日志窗口是否有新的日志打印吧!

尽情冲浪

快来一起在UGUI中尽情冲浪🏄‍♀️🏄吧.