本书源代码 第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