吴亚峰、于复兴编著的《Unity 3D游戏开发技术详解与典型案例》提供全面的Unity 3D开发知识,两大获奖商业案例,帮助您尽快进入实战角色,快速学习和提高Unity开发技术的首选。详尽介绍了Unity的开发环境布置、使用及开发技巧等,并通过相应的实例达到学以致用,是快速学习和提高Unity开发技术的首选书籍。希望读者通过阅读本书,可以开发出更多、更精彩的游戏。
Unity跨平台游戏开发工具出现在开发者面前,跨平台将会开启游戏开发的新模式。《Unity 3D游戏开发技术详解与典型案例》基于Unity 3.5编写,通过丰富的游戏实例,以JavaScript与C#语言介绍了Unity开发。对于入门Unity开发的读者,这本书是最佳的参考资料。
吴亚峰、于复兴编著的《Unity 3D游戏开发技术详解与典型案例》对Unity 3D集成开发环境界面、脚本的编写和众多高级特效的实现进行了详细的介绍,内容深入浅出,是一本适合不同需求、不同开发水平读者的技术宝典。
《Unity 3D游戏开发技术详解与典型案例》介绍了Unity 3D的诞生、特点、开发环境的搭建以及运行机制,Unity 3D集成开发环境,Unity 3D中脚本的编写,以及Unity 3D开发过程中经常使用的组件及对象; 同时介绍了Unity开发平台的完整的物理引擎体系,开发常用的技术以及Unity 3D中的着色器和着色器语言——ShaderLab;并且介绍了2个完整的大型3D游戏案例:3D保龄球和火力篮球。《Unity 3D游戏开发技术详解与典型案例》附赠的光盘中包含了书中所有案例的完整源代码,最大限度地帮助读者快速掌握开发技术。
《Unity 3D游戏开发技术详解与典型案例》适合从事游戏开发的编程人员学习。
第1章 Unity 3D基础以及开发环境的搭建 1
1.1 Unity 3D基础知识概览 1
1.1.1 初识Unity 3D 1
1.1.2 Unity的诞生及发展 1
1.1.3 Unity 3D广阔的市场前景 2
1.1.4 独具特色的Unity 3D 2
1.2 开发环境的搭建 7
1.2.1 Unity集成开发环境的安装 7
1.2.2 目标平台的SDK与Unity 3D的集成 11
1.3 第一个Unity 3D程序 16
1.4 本章小结 23
第2章 Unity集成开发环境详解 24
2.1 Unity集成开发环境的整体布局 24
2.1.1 Unity集成开发环境的整体布局 24
2.1.2 标题栏 24
2.1.3 菜单栏 25
2.1.4 工具栏 26
2.1.5 场景设计面板 26
2.1.6 游戏预览面板 31
2.1.7 游戏组成对象列表 32
2.1.8 项目资源列表 34
2.1.9 属性查看器 35
2.1.10 状态栏与控制台 36
2.1.11 动画视图 37
2.2 菜单栏 37
2.2.1 文件(File) 37
2.2.2 编辑(Edit) 40
2.2.3 资源(Assets) 46
2.2.4 游戏对象(GameObject) 56
2.2.5 组件(Component) 65
2.2.6 地形(Terrain) 68
2.2.7 窗口(Window) 70
2.2.8 帮助(Help) 75
2.3 本章小结 79
第3章 Unity 3D的脚本概述 80
3.1 Unity脚本概述 80
3.2 Unity中专用JavaScript与通用JavaScript的区别 80
3.2.1 在运行过程中性能的差异 80
3.2.2 在语法上的区别 81
3.3 Unity的基本语法 83
3.3.1 常用操作 83
3.3.2 记录时间 84
3.3.3 访问其他组件 85
3.3.4 访问其他游戏对象 86
3.3.5 向量 89
3.3.6 成员变量和全局变量 89
3.3.7 实例化 90
3.3.8 协同程序和中断 91
3.3.9 一些重要的类 92
3.3.10 性能优化 95
3.3.11 脚本编译 97
3.3.12 泛化方法 98
3.4 一个简单的案例 98
3.4.1 球转场景实现 98
3.4.2 球走场景实现 104
3.5 本章小结 108
第4章 Unity 3D的常用组件及对象 109
4.1 图形用户界面组件 109
4.1.1 图形用户界面组件的变量 109
4.1.2 图形用户界面的具体组件 118
4.1.3 图形用户界面组件综合案例 150
4.2 预制件prefab资源的应用 154
4.2.1 预制件prefab资源的创建 155
4.2.2 通过prefab资源进而实例化对象 156
4.3 常用的输入对象 158
4.3.1 Touch输入对象 158
4.3.2 Input输入对象 159
4.4 销毁相关方法 168
4.4.1 Object.Destroy方法 169
4.4.2 Network.Destroy方法 169
4.4.3 EditorWindow.OnDestroy方法 170
4.4.4 MonoBehaviour.OnDestory方法 170
4.4.5 ScriptableObject.OnDestory方法 171
4.4.6 Object.DestoryImmediate方法 171
4.5 本章小结 171
第5章 物理引擎 172
5.1 刚体 172
5.1.1 刚体特性 172
5.1.2 物理管理器 176
5.1.3 碰撞与休眠 180
5.2 碰撞器 181
5.2.1 碰撞器的添加 182
5.2.2 碰撞过滤 186
5.2.3 物理材质 191
5.3 粒子系统 193
5.3.1 粒子系统的创建 194
5.3.2 粒子系统的特性 195
5.3.3 粒子系统的组合使用 198
5.4 关节 201
5.4.1 铰链关节 201
5.4.2 固定关节 206
5.4.3 弹簧关节 207
5.4.4 角色关节 209
5.4.5 可配置关节 211
5.4.6 关节综合案例——机械手 216
5.5 游戏实例——摧毁立方体 223
5.6 本章小结 231
第6章 3D游戏开发的常用技术 232
6.1 天空盒的应用 232
6.1.1 Unity内置的天空盒资源 233
6.1.2 开发实际需要的天空盒 235
6.2 虚拟按钮与摇杆使用 237
6.2.1 Unity内置的虚拟按钮与摇杆资源 237
6.2.2 虚拟按钮与摇杆使用的案例 238
6.3 声音 241
6.3.1 音频管理器(Audio Manager) 242
6.3.2 音频监听器(Audio Listener) 242
6.3.3 音频源(Audio Source) 243
6.3.4 音频效果(Audio Effects) 245
6.3.5 音频混响区(Audio Reverb Zones) 249
6.3.6 简单的声音控制案例 250
6.4 光源 252
6.4.1 点光源(Point light) 252
6.4.2 平行光光源(Directional light) 254
6.4.3 聚光灯光源(Spotlight) 255
6.4.4 区域光光源(Area Light) 257
6.4.5 光照过滤 257
6.5 3D拾取技术 259
6.6 地形引擎 262
6.6.1 创建地形 262
6.6.2 编辑地形 264
6.6.3 添加树木和草 268
6.6.4 添加水 271
6.6.5 地形参数 272
6.7 角色动画 272
6.7.1 导入角色动画 273
6.7.2 动画脚本 274
6.8 角色控制器 275
6.8.1 添加角色控制器 275
6.8.2 角色控制器的使用 276
6.9 本章小结 276
第7章 着色器——Shaders 277
7.1 着色器概述 277
7.2 ShaderLab语法基础 278
7.2.1 Shader 278
7.2.2 Properties 278
7.2.3 SubShader 279
7.2.4 SubShader Tags 280
7.2.5 Pass 281
7.2.6 Fallback 283
7.2.7 Category 283
7.3 通道渲染命令(ShaderLab) 283
7.3.1 颜色、材质和光照 283
7.3.2 剪裁和深度测试 285
7.3.3 纹理处理 287
7.3.4 雾 289
7.3.5 Alpha测试 289
7.3.6 混合 291
7.3.7 通道标签 293
7.3.8 绑定通道 293
7.4 表面着色器和顶点片元着色器 294
7.4.1 表面着色器 294
7.4.2 顶点片元着色器 300
7.5 本章小结 303
第8章 杂项 304
8.1 PlayerPrefs类 304
8.2 网络——Network 306
8.2.1 消息发送——Messages Sent 306
8.2.2 类变量——Class Variables 310
8.2.3 类方法——Class Functions 317
8.3 加速度传感器 326
8.4 本章小结 329
第9章 综合案例——3D保龄球 330
9.1 游戏背景以及功能概述 330
9.1.1 背景概述 330
9.1.2 功能简介 330
9.2 游戏的策划及准备工作 332
9.2.1 游戏的策划 332
9.2.2 使用Unity开发游戏前的准备工作 333
9.3 游戏的架构 336
9.3.1 各个场景的简要介绍 336
9.3.2 游戏架构简介 337
9.4 主菜单界面 338
9.5 游戏界面 346
9.5.1 场景搭建 346
9.5.2 保龄球瓶及其脚本 350
9.5.3 初始化与得分计算 354
9.5.4 瓶子碰撞体的组装 361
9.5.5 得分的绘制,储存和返回键的开发 365
9.5.6 瓶子下降和下降台控制 368
9.6 设置界面 370
9.7 统计界面 373
9.8 帮助界面 379
9.9 游戏结束界面 382
9.10 游戏的优化与改进 385
第10章 综合案例——火力篮球 386
10.1 游戏背景以及功能概述 386
10.1.1 游戏背景概述 386
10.1.2 功能简介 386
10.2 游戏的策划及准备工作 388
10.2.1 游戏的策划 388
10.2.2 使用Unity开发游戏前的准备工作 388
10.3 游戏的架构 391
10.3.1 各个场景的简要介绍 391
10.3.2 游戏架构简介 392
10.4 主菜单界面 393
10.5 游戏界面 398
10.5.1 场景搭建 399
10.5.2 篮球及其脚本 406
10.5.3 计分触发器开发 410
10.5.4 主摄像机设置以及脚本开发 414
10.6 设置界面 416
10.7 关于界面 418
10.8 帮助界面 420
10.8.1 场景搭建 420
10.8.2 篮球脚本开发 421
10.8.3 计分触发器的脚本开发 423
10.8.4 主摄像机脚本开发 425
10.9 记录界面 427
10.10 游戏结束界面 433
10.11 游戏的优化与改进 434