本书系统讲解Unity编辑器开发工作中常用的类与方法,以基础知识为核心,结合实战案例,引导读者渐进式学习Unity编辑器开发相关的技术知识。
本书共分为七章,依次介绍编辑器开发的基础、如何自定义编辑器功能菜单、如何自定义检视面板、如何自定义编辑器窗口、如何定制编辑器的外观样式、如何使用编辑器辅助开发调试,以及在编辑器环境中的数据与资产管理等相关内容。
本书既适合初学者入门,也对有多年工作经验的开发者具有参考价值。
《Unity编辑器开发与拓展》对基于Unity的编辑器开发循序渐进地进行了讲解,配合实例演示如何自定义工具,优化开发流程,是Unity开发者提升效率、创造力的工具书。
Unity作为一款强大的游戏开发引擎,其编辑器功能的可扩展性和可定制性一直是开发者所青睐的。作者在最初学习时,苦于没有系统的学习资料,只能在不断摸索中积累经验。本次写作的目的是希望本书能够为想要学习编辑器开发方向内容的开发者提供详细的学习资料。
本书第1章介绍了编辑器开发的基础,包括绘制各种类型的编辑器元素,以及如何进行编辑器布局。第2~4章分别介绍了如何自定义编辑器功能菜单、检视面板和编辑器窗口。第5章介绍了与编辑器外观相关的内容,包括皮肤、样式、图标和动画。第6章介绍了Gizmos、Handles两个可视化辅助工具。第7章介绍了编辑器环境中数据与资产管理的相关内容。
通过本书的学习,读者将能够轻松地定制工作所需的编辑器工具,提高工作效率,优化工作流程。本书在写作过程中使用的Unity版本为2020.3.16f1c1,因为不同版本的API可能会略有不同,因此建议读者在学习过程中使用相同的版本。扫描目录上方的二维码可下载本书源代码。
在写作过程中,作者得到了家人和朋友的帮助,在此表示感谢。同时,感谢清华大学出版社赵佳霓编辑的细心指导。
限于作者知识水平,书中难免存在不妥之处,欢迎读者批评指正。
张寿昆
2024年3月???????
II
III
张寿昆,一名Unity开发工程师,CSDN博客专家、华为云云享专家、阿里云专家博主、2024年度Unity价值专家,从事于游戏、VR、AR、MR、虚拟仿真、数字孪生、元宇宙等相关领域,具有多年开发经验,现就任于某国企互联网公司。
第1章 编辑器开发基础 1
1.1 绘制编辑器元素 2
1.1.1 文本 2
1.1.2 按钮 4
1.1.3 开关 6
1.1.4 输入框 6
1.1.5 下拉列表 8
1.1.6 滑动条 9
1.1.7 折叠栏 10
1.2 编辑器布局 11
1.2.1 水平与垂直布局 11
1.2.2 GUI中的滚动列表 13
1.2.3 GUI元素和布局的大小 14
1.2.4 GUI元素之间的间隙 18
第2章 自定义功能菜单 20
2.1 MenuItemAttribute 20
2.1.1 自定义Unity顶部的功能菜单 20
2.1.2 自定义Hierarchy窗口右键功能菜单 28
2.1.3 自定义Project窗口右键功能菜单 33
2.1.4 自定义组件下拉列表功能菜单 37
2.2 ContextMenuAttribute 40
2.3 ContextMenuItemAttribute 41
第3章 自定义检视面板 43
3.1 创建自定义编辑器类 43
3.1.1 如何自定义检视面板中的GUI内容 44
3.1.2 如何检测和应用修改 46
3.1.3 编辑器操作的撤销与恢复 48
3.1.4 实现DoTween动画参数的编辑 53
3.1.5 如何自定义预览窗口 58
3.1.6 扩展默认组件的检视面板 67
3.2 PropertyDrawer 74
3.2.1 内置的PropertyDrawer 74
3.2.2 内置的DecoratorDrawer 78
3.2.3 如何创建自定义PropertyDrawer 79
第4章 自定义编辑器窗口 86
4.1 如何创建新的编辑器窗口 86
4.1.1 打开新创建的编辑器窗口 86
4.1.2 定义编辑器窗口中的GUI内容 87
4.1.3 如何创建弹出窗口 89
4.1.4 开发备忘录 93
4.1.5 Protobuf通信协议文件编辑器 105
4.1.6 ScriptableWizard 117
4.2 如何扩展默认的编辑器窗口 120
4.2.1 扩展Hierarchy窗口 120
4.2.2 扩展Project窗口 121
4.3 Game窗口中的GUI 123
4.3.1 运行时控制台窗口 125
4.3.2 运行时层级窗口 133
4.3.3 运行时检视窗口 137
第5章 编辑器外观 151
5.1 GUI皮肤 151
5.2 GUI样式 154
5.3 GUI图标 159
5.4 GUI动画 163
第6章 可视化辅助工具 165
6.1 Gizmos 165
6.1.1 概述 165
6.1.2 常用函数 169
6.1.3 使用Gizmos辅助调试相机的避障功能 176
6.2 Handles 181
6.2.1 概述 181
6.2.2 常用函数 182
6.2.3 实现一个路径编辑工具 194
第7章 编辑器环境下的数据与资产管理 207
7.1 EditorPrefs 207
7.2 AssetDatabase 209
7.2.1 资产管理 209
7.2.2 AssetBundle管理 232
7.2.3 CustomPackage管理 244
7.3 ScriptableObject 245
7.4 AssetModificationProcessor 248
7.5 AssetPostprocessor 251
7.6 BuildPipeline 257
7.6.1 AssetBundle构建工具 258
7.6.2 应用程序批量构建工具 266
IV
V