内容简介
《Unity 3D 实战核心技术详解》详细介绍了实际游戏开发中使用的核心技术,每一章都结合了游戏开发的实战案例。首先,介绍了3D 数学在Unity 中的运用,3D 数学知识包括:Unity 坐标系统、向量、矩阵、四元数、欧拉角等基础知识。其次,介绍了游戏开发中常用的核心技术:Avatar 换装系统、消息事件系统、Protobuf 在游戏中的运用,以及游戏中的文本文件加密算法等。再次,介绍了游戏中的AI 行为树算法、残影算法、移动端实时阴影绘制、移动端海水的绘制等技术。然后,在游戏架构设计方面,介绍了最经典的针对UI 的MVC 架构设计和对于角色动作和技能的FSM 有限状态机架构,以及游戏版本迭代使用的热更新技术方案。最后,介绍了移动端GPU 编程和游戏开发的一些经验。
《Unity 3D 实战核心技术详解》适合具备一定Unity 开发经验的初学者和有一定Unity 项目开发经验的游戏开发者阅读。
作者简介
姜雪伟
创业公司技术合伙人,从事IT行业15年,主导或参与了18款大型游戏的研发;
曾在网龙、久游、趣游等知名IT公司担任核心技术团队负责人;
在泰课和CSDN学院等在线教育网担任高级讲师,CSDN社区专家;
研究方向为客户端架构、3D引擎架构、图形学算法、GPU编程等,目前负责公司3D引擎的研发工作;
工作之余,喜欢用书籍记录自己多年的技术积淀。
目录
推荐序 VII
推荐语 IX
前言 XI
第1 章 3D 数学与Unity 1
1.1 Unity 坐标系 2
1.2 向量 4
1.2.1 向量的加法 5
1.2.2 向量的减法 6
1.2.3 向量点乘 7
1.2.4 向量叉乘 8
1.3 矩阵 10
1.3.1 平移矩阵 12
1.3.2 矩阵缩放 14
1.3.3 矩阵旋转 15
1.4 四元数 17
1.5 欧拉角 18
1.6 小结 19
第2 章 Avatar 换装系统 20
2.1 换装原理 20
2.2 换装代码实现 23
2.3 小结 36
第3 章 消息事件封装 37
3.1 消息类型定义和封装 37
3.2 消息事件的监听与分发 40
3.3 小结 44
第4 章 Protobuf 在游戏中运用 45
4.1 Protobuf 消息结构体定义 45
4.2 编写Protobuf 结构体 46
4.3 Protobuf 转换工具制作 48
4.4 Protobuf 文件在Unity 中的运用 50
4.5 小结 51
第5 章 游戏中的文本文件加密 52
5.1 配置文件格式 53
5.2 文件加载接口 53
5.3 文本文件加密算法及应用 62
5.4 小结 69
第6 章 行为树在游戏中的运用 70
6.1 行为树插件介绍 71
6.2 案例讲解 73
6.3 小结 78
第7 章 残影 79
7.1 残影的技术实现 80
7.2 Demo 展示 86
7.3 小结 87
第8 章 移动端实时阴影绘制 88
8.1 移动端实时阴影实现原理 89
8.2 技术实现 90
8.3 透明材质实时阴影处理 93
8.4 小结 97
第9 章 移动端海水仿真技术 98
9.1 海水实现的技术原理 99
9.2 海水网格 100
9.3 海水算法 101
9.4 海水的技术实现 106
9.5 海水浮力的实现 138
9.6 海面风力实现 143
9.7 操作界面 147
9.8 海水的渲染 158
9.9 海水案例分享 167
9.10 小结 169
第10 章 MVC 架构设计 170
10.1 MVC 代码模块设计 171
10.2 事件代码实现案例 172
10.3 窗体基类的实现案例 184
10.4 窗体子类代码实现案例 191
10.5 控制类实现案例 197
10.6 状态类设计实现 198
10.7 窗体管理类实现案例 206
10.8 MVC 案例分享 213
10.9 小结 215
第11 章 FSM有限状态机在游戏中的运用 216
11.1 FSM 基类设计 217
11.2 子类设计 218
11.3 实体类设计 219
11.4 技能子类 221
11.5 游戏案例分享 223
11.6 小结 225
第12 章 移动端热更新技术实现 226
12.1 热更新架构设计 227
12.2 资源打包工具的开发 228
12.3 C#与Lua 接口相互结合 234
12.4 模块化接口实现 253
12.5 Lua 脚本逻辑编写 265
12.6 案例实现 271
12.7 小结 281
第13 章 移动端Shader 技术 282
13.1 可编程流水线 283
13.2 顶点着色器 284
13.3 片段着色器 286
13.4 Shader 案例分享 291
13.5 小结 295
第14 章 游戏开发经验分享 296
14.1 关于调试经验分享 296
14.2 移动端游戏防破解技术 299
14.3 减小包体的大小 302
14.4 动态对象资源的优化 304
14.5 多线程资源下载技术 309
14.6 小结 324
笔者IT小屋:姜雪伟个人主页