目 录
第1部分 Unity的基本概念
第1章
初识Unity
1.1 技术要求2
1.2 开始使用Unity编辑器3
1.2.1 选择合适的Unity版本3
1.2.2 选择合适的订阅计划4
1.2.3 下载和安装Unity编辑器4
1.2.4 探索Unity编辑器12
1.3 在Unity中使用不同的功能24
1.3.1 什么是游戏引擎24
1.3.2 Unity的功能25
1.4 Unity中的.NET/C#和脚本26
1.4.1 Unity中的.NET配置文件26
1.4.2 Unity的脚本后端27
1.5 使用Visual Studio构建Unity游戏29
1.6 本章小结32
第2章
Unity中的脚本概念
2.1 技术要求33
2.2 理解Unity中脚本的概念33
2.2.1 游戏对象-组件架构33
2.2.2 Unity中的常见类34
2.2.3 Unity中的预制件39
2.2.4 Unity中的特殊文件夹44
2.3 脚本对象的生命周期44
2.3.1 初始化45
2.3.2 更新47
2.3.3 渲染48
2.4 创建脚本并用作组件51
2.4.1 如何在Unity中创建脚本51
2.4.2 将脚本作为组件附加到场景中的
游戏对象上54
2.4.3 访问附加到游戏对象的组件57
2.5 Unity Package Manager和包60
2.5.1 Unity Package Manager60
2.5.2 包63
2.6 本章小结65
第2部分 C#脚本与Unity内置模块的协同工作
第3章
使用Unity UI系统开发UI
3.1 Unity中的C#脚本和通用UI组件68
3.1.1 Canvas组件69
3.1.2 Image组件80
3.1.3 Text组件84
3.1.4 可选UI组件88
3.2 Unity中的C#脚本和UI事件系统90
3.2.1 输入模块91
3.2.2 新的Input System包92
3.3 MVVM模式和UI93
3.4 提高UI的性能99
3.4.1 Unity Profiler99
3.4.2 多个Canvas对象100
3.4.3 使用Sprite Atlas100
3.5 本章小结102
第4章
使用Unity动画系统创建动画
4.1 技术要求103
4.2 Unity动画系统中的概念104
4.2.1 动画剪辑104
4.2.2 动画控制器109
4.2.3 Avatar112
4.2.4 Animator组件116
4.3 在Unity中实现3D动画117
4.3.1 导入动画资源117
4.3.2 配置动画控制器120
4.4 在Unity中实现2D动画124
4.5 提高Unity动画系统的性能127
4.5.1 Unity Profiler工具127
4.5.2 Animator窗口的Culling Mode
属性130
4.5.3 Anim.Compression130
4.6 本章小结131
第5章
使用Unity物理系统
5.1 技术要求132
5.2 Unity物理系统中的概念132
5.2.1 Collider(碰撞体)133
5.2.2 Rigidbody(刚体)137
5.2.3 Trigger(触发器)141
5.3 使用物理系统编写脚本141
5.3.1 Collider的方法141
5.3.2 Trigger的方法143
5.3.3 Rigidbody的方法144
5.4 制作一个基于物理系统的简单游戏147
5.5 提高物理系统的性能158
5.5.1 Unity Profiler158
5.5.2 增加固定时间间隔159
5.5.3 减少不必要的分层碰撞检测160
5.6 本章小结160
第6章
在Unity项目中集成音频和视频
6.1 技术要求161
6.2 Unity音频系统和视频系统中的概念161
6.2.1 Audio Clip(音频剪辑)161
6.2.2 Audio Source(音频源)165
6.2.3 Audio Listener(音频监听器)167
6.2.4 Video Clip(视频剪辑)168
6.2.5 Video Player(视频播放器)171
6.3 使用音频和视频编写脚本174
6.3.1 AudioSource.Play175
6.3.2 AudioSource.Pause176
6.3.3 AudioSource.Stop178
6.3.4 VideoPlayer.Clip178
6.3.5 VideoPlayer.url180
6.3.6 VideoPlayer.Play181
6.3.7 VideoPlayer.frame和VideoPlayer.
frameCount182
6.4 使用Unity开发Web应用程序的
注意事项184
6.4.1 URL184
6.4.2 帧率187
6.5 提高音频系统的性能187
6.5.1 Unity Profiler187
6.5.2 使用Force To Mono来节省内存189
6.6 本章小结190
第3部分 Unity高级脚本编程
第7章
理解Unity中计算机图形学的数学原理
7.1 从使用坐标系开始194
7.1.1 理解左手坐标系和右手坐标系195
7.1.2 局部空间196
7.1.3 世界空间198
7.1.4 屏幕空间200
7.2 使用向量202
7.2.1 向量相加203
7.2.2 向量相减204
7.2.3 点积运算205
7.2.4 叉积运算207
7.3 使用变换矩阵208
7.3.1 平移矩阵208
7.3.2 旋转矩阵210
7.3.3 缩放矩阵210
7.4 使用四元数212
7.4.1 创建旋转213
7.4.2 操纵旋转214
7.4.3 使用欧拉角216
7.5 本章小结217
第8章
Unity中的可编程渲染管线
8.1 可编程渲染管线简介218
8.1.1 Fontainebleau Demo项目219
8.1.2 Spaceship Demo项目219
8.1.3 BoatAttack Demo项目220
8.1.4 The Heretic: Digital Human项目220
8.1.5 The Heretic: VFX Character项目221
8.1.6 通用渲染管线221
8.1.7 高清渲染管线224
8.2 使用Unity的通用渲染管线225
8.2.1 探索示例场景226
8.2.2 通用渲染管线资源231
8.2.3 Volume框架和后期处理234
8.3 通用渲染管线的着色器和材质237
8.3.1 常用着色器237
8.3.2 将项目中的材质升级为通用渲染
管线材质240
8.3.3 创建着色器和着色器图形242
8.4 提高通用渲染管线的性能249
8.4.1 Frame Debugger工具249
8.4.2 SRP Batcher251
8.5 本章小结252
第9章
Unity中面向数据的技术堆栈
9.1 技术支持254
9.2 DOTS概述254
9.2.1 OOP模式与DOTS的比较255
9.2.2 C# Job System258
9.2.3 ECS258
9.2.4 Burst编译器259
9.3 多线程和C# Job System259
9.3.1 协程260
9.3.2 async/await260
9.3.3 使用C# Job System263
9.4 在Unity中使用ECS273
9.5 使用C#和Burst编译器284
9.6 本章小结285
第10章
Unity中的序列化系统、资源管理和Azure
10.1 技术要求286
10.2 Unity的序列化系统287
10.3 Unity的资源工作流程298
10.3.1 GUID和文件ID299
10.3.2 meta文件303
10.3.3 AssetPostprocessor类和导入
管线305
10.3.4 Library文件夹307
10.4 Unity的特殊文件夹308
10.4.1 Resources文件夹308
10.4.2 StreamingAssets文件夹310
10.5 Azure Blob存储与Unity的可寻址
资源系统311
10.5.1 设置Azure Blob存储服务311
10.5.2 安装可寻址资源系统包317
10.5.3 构建可寻址内容318
10.5.4 将内容部署到Azure325
10.5.5 从Azure加载可寻址内容326
10.6 本章小结328
第11章
Microsoft Game Dev、Azure、PlayFab和Unity协同工作
11.1 技术要求329
11.2 Microsoft Game Dev、Azure和
PlayFab的介绍329
11.2.1 Microsoft Game Dev329
11.2.2 Azure330
11.2.3 PlayFab331
11.3 为Unity项目设置PlayFab331
11.3.1 创建一个新的PlayFab账户332
11.3.2 在PlayFab中创建Game
Studio和Title334
11.3.3 在Unity项目中添加Azure
PlayFab SDK336
11.4 在Unity中使用PlayFab完成
玩家注册和登录338
11.4.1 在PlayFab中注册玩家339
11.4.2 在PlayFab中登录玩家343
11.5 在Unity中使用PlayFab实现
一个排行榜346
11.5.1 在PlayFab中设置一个排行榜346
11.5.2 使用Azure PlayFab API从
Unity中更新玩家分数350
11.5.3 从Unity中的PlayFab加载排
行榜数据354
11.6 本章小结358