内容简介
第一篇 入门篇
第1章 初识神兵:为什么选择Unity
1.1 常用3D引擎介绍
1.1.1 什么是游戏引擎
1.1.2 游戏引擎架构基础
1.1.3 主流3D引擎对比分析
1.2 Unity的发展史及代表作品
1.2.1 Unity的前世今生
1.2.2 Unity的代表作品
1.3 Unity的授权、服务与安装
1.3.1 Unity的授权类型和服务
1.3.2 Unity的安装
1.4 如何获取Unity开发的学习资源
1.4.1 Unity的开发者官方认证培训
1.4.2 Unity官方的网站资源
1.4.3 值得推荐的第三方学习资源
1.5 本章小结
第2章 蹒跚学步:和Unity的第一次亲密接触
2.1 Unity编辑器入门
2.1.1 界面布局
2.1.2 Unity的工具栏
2.1.3 顶部菜单栏
2.1.4 Console视图
2.2 Unity中的核心概念和子系统
2.2.1 游戏场景
2.2.2 游戏对象
2.2.3 组件
2.2.4 预设体
2.2.5 Unity的核心子系统
2.3 Unity Asset Store游戏资源商城
2.4 本章小结
第3章 无往不利:在Unity中使用C#进行编程
3.1 C#语言概述
3.1.1 为什么选择C
3.1.2 C#的开发环境
3.2 C#的基本语法和使用
3.2.1 变量和数据类型
3.2.2 表达式与运算符
3.2.3 流程控制
3.2.4 函数
3.2.5 类、对象和方法
3.3 Unity的脚本系统
3.3.1 创建脚本
3.3.2 MonoDevelop编辑器及VisualStudio
3.3.3 事件函数
3.4 本章小结
第二篇 进阶篇
第4章 创建一个新世界:游戏场景
4.1 创建基础的游戏场景
4.1.1 Unity中的地形引擎
4.1.2 基本几何体的使用
4.1.3 添加天空盒
4.2 创建外部的游戏资源
4.2.1 3D模型、材质和动画的创建工具
4.2.2 音效创建工具
4.2.3 其他资源创建工具
4.3 导入外部的游戏资源
4.3.1 2D图像文件的导入和设置
4.3.2 3D模型的导入和设置
4.3.3 3D动画的导入和设置
4.3.4 音频和视频的导入和设置
4.3.5 Unity资源包的导入和导出
4.4 实战:创建BattleStar项目并准备游戏资源
4.4.1 BattleStar游戏的策划与设计
4.4.2 创建BattleStar项目并添加版本控制
4.4.3 创建并导入BattleStar项目所需的3D美术资源
4.4.4 创建BattleStar的基本游戏场景
4.5 本章小结
第5章 有了光就有了一切:Enlighten
5.1 Unity光照系统介绍
5.1.1 Light组件简介
5.1.2 常见的光源类型
5.1.3 Light inspector中的参数简介
5.2 全局光照
5.2.1 全局光照简介
5.2.2 烘焙
5.2.3 Lightmap的使用
5.2.4 Light Probe和Reflection Probe的使用
5.3 实战:给BattleStar游戏场景添加光照
5.3.1 给场景添加光照前的准备工作
5.3.2 给场景添加太阳光
5.3.3 添加发光贴图
5.3.4 添加点光源
5.3.5 添加Light Probe Group
5.3.6 添加Reflection Probe
5.3.7 进行光照烘焙处理
5.4 本章小结
第6章 让游戏画面栩栩如生:粒子系统和其他
6.1 Shuriken粒子系统
6.1.1 什么是粒子系统
6.1.2 Shuriken粒子系统
6.2 Shader的使用
6.2.1 什么是Shader
6.2.2 Unity中的标准Shader
6.2.3 创建自定义的Shader
6.3 Post Processing的使用
6.3.1 Post Processing简介
6.3.2 如何在Unity项目中添加Post Processing
6.4 实战:美化BattleStar游戏场景的视觉效果
6.4.1 设置场景材质(标准Shader的使用)
6.4.2 制作添加粒子系统特效1:烟尘
6.4.3 制作添加粒子系统特效2:火花
6.4.4 给游戏添加后处理特效
6.4.5 第三方插件Amplify ShaderEditor的使用
6.5 本章小结
第7章 玩家的好帮手:UI系统
7.1 Unity中的Ul系统简介
7.1.1 UGUI系统简介
7.1.2 Canvas简介
7.1.3 交互元素简介
7.2 实战:给BattleStar游戏添加UI
7.3 本章小结
第8章 让角色活灵活现:Unity中的动画系统
8.1 Unity动画系统
8.1.1 Legacy Animation System
8.1.2 Mecanim动画系统概览
8.1.3 Mecanim动画系统的使用
8.2 实战:让BattleStar游戏中的角色动起来
8.2.1 导入NPC角色资源
8.2.2 设置NPC基础状态机
8.2.3 添加状态机之间的切换
8.2.4 编写控制角色动画的脚本
8.3 本章小结
第9章 最简单的游戏AI:NavMesh寻路系统
9.1 Unity中的寻路系统
9.1.1 寻路系统内部工作原理
9.1.2 烘焙设置:NavMesh
9.1.3 添加障碍物:NavMesh Obstacle
9.1.4 跳过障碍物:Off-Mesh Link
9.2 BattleStar游戏实战:在游戏中使用寻路系统
9.2.1 添加地板对象的寻路烘焙
9.2.2 在NPC角色对象上添加并设置寻路功能
9.3 本章小结
第10章 真实世界的法则:物理引擎
10.1 Unity中的物理引擎系统
10.1.1 物理系统概述
10.1.2 Rigidbody组件
10.1.3 Collider组件
10.1.4 Raycast
10.2 BattleStar游戏实战:给游戏添加物理系统
10.2.1 BattleStar游戏中的物理系统设计
10.2.2 在场景中添加物理碰撞系统
10.3 本章小结
第11章 且听风吟:音乐和音效
11.1 Unity中的Audio系统
11.1.1 Audio系统概述
11.1.2 Audio Source
11.1.3 Audio Reverb Zone
11.2 实战:给BattleStar游戏添加背景音乐和音效
11.2.1 将音乐和音效资源导入到项目中
11.2.2 给游戏添加背景音乐
11.2.3 给游戏添加音效
11.3 本章小结
第12章 让游戏更顺畅:数据存取与性能优化
12.1 Unity中的数据存取
12.1.1 使用PlayerPrefs
12.1.2 使用XML
12.1.3 使用数据库
12.2 Unity中的性能优化
12.2.1 Unity中的遮挡剔除
12.2.2 使用Profiler和Frame Debugger
12.2.3 脚本优化
12.3 实战:给BattleStar添加数据存取机制并优化游戏
12.3.1 游戏数据存取机制的设计
12.3.2 实现游戏数据存取机制
12.3.3 对游戏性能进行优化
12.4 本章小结
第13章 一个人的世界很孤单:Unity网络编程
13.1 UNET简介
13.1.1 UNET中的服务器
13.1.2 High Level API
13.1.3 Transport Layer API
13.2 Unity中的第三方网络插件:Photon
13.2.1 Photon的主要功能特性
13.2.2 Photon Cloud与Photon Server
13.2.3 PUN、PUN+与UNET
13.3 实战:使用Unity和Photon创建一个简单的多人在线游戏
13.3.1 PhotonFPS游戏的产品策划
13.3.2 创建Unity项目和基础场景
13.3.3 优化和完善游戏
13.3.4 添加语音对话功能
13.4 本章小结
第三篇 实战篇
第14章 虚拟现实开发技术入门
14.1 虚拟现实的技术基础
14.1.1 立体显示技术
14.1.2 场景建模技术
14.1.3 自然交互技术
14.2 主流的虚拟现实设备
14.2.1 Oculus Rift
14.2.2 HTCVive
14.2.3 Sony PlayStation VR
14.2.4 Samsung Gear VR
14.2.5 Google Daydream
14.2.6 Microsoft HoloLens
14.2.7 苹果iGlass
14.3 主流的虚拟现实开发工具
14.3.1 虚拟现实开发平台简介
14.3.2 第三方工具和SDK
14.4 虚拟现实应用开发的基本流程和注意事项
14.4.1 虚拟现实应用开发的基本流程
14.4.2 虚拟现实应用开发的注意事项
14.5 本章小结
第15章 实战:跨HTC Vive和OculusRift平台开发VR游戏
15.1 HTC Vive平台开发概述
15.1.1 HTC Vive设备及平台简介
15.1.2 Lighthouse技术原理
15.1.3 HTC Vive手柄交互详解
15.1.4 Steam VR插件简介
15.1.5 VRTK插件简介
15.2 配置HTC Vive的开发测试环境
15.2.1 安装HTC Vive硬件和SteamVR软件
15.2.2 设置并打开Steam VR
15.2.3 运行SteamVR的测试场景
15.2.4 TPCast无线模块
15.2.5 Vive追踪器简介
15.3 实战:开发跨平台VR联网对战塔防游戏
15.3.1 对战塔防游戏策划
15.3.2 创建项目并进行基本设置
15.3.3 新建塔防场景
15.3.4 实现敌人的自动寻路功能
15.3.5 添加其他游戏逻辑组件
15.3.6 使用手柄控制游戏的开始
15.3.7 使用手柄在游戏中进行传送
15.3.8 使用手柄与场景中的物体互动
15.3.9 给玩家装配武器
15.3.10 实现游戏的联网功能
15.3.11 修复游戏中的小问题
15.3.12 适配到Oculus平台
15.3.13 添加背景音乐和音效
15.4 将产品上传到Viveport和Steam平台
15.5 本章小结
第16章 实战:在Google Daydream平台开发VR游戏
16.1 Google Daydream VR平台开发概述
16.1.1 Google Daydream VR设备及平台简介
16.1.2 Google Daydream VR中的交互
16.2 实战:开发V SpaceCraft游戏
16.2.1 《VSpaceCraft》的产品策划
16.2.2 配置Google Daydream VR的开发测试环境
16.2.3 创建新的Daydream项目
16.2.4 游戏基本结构的设计和实现
16.2.5 游戏场景的搭建和设置
16.2.6 将游戏适配到Daydream VR平台
16.2.7 隐藏控制器模型
16.3 将产品发布到Google Play VR和Daydream
16.3.1 Google Play VR和Daydream介绍
16.3.2 VR应用发布
16.4 本章小结
第17章 实战:使用Unity和Vuforia开发AR小游戏
17.1 Vuforia SDK简介
17.2 实战:开发AR小游戏PocketCat
17.2.1 PocketCat游戏简介
17.2.2 配置开发测试环境
17.2.3 开发前的准备工作
17.2.4 利用Image Target实现图像识别
17.2.5 在iOS设备上编译运行
17.2.6 实现用户自定义的Image Target
17.2.7 添加控制角色的虚拟joystick
17.2.8 将项目在Android设备上编译
17.2.9 将游戏发布到AppStore和Android应用商城
17.3 本章小结
第18章 实战:使用Unity和Wikitude开发AR应用
18.1 Wikitude SDK简介
18.2 实战:开发AR游戏iGirl
18.2.1 iGirl游戏简介
18.2.2 下载Wikitude SDK
18.2.3 获取Wikitude的License
18.2.4 创建新项目并导入WikitudeSDK
18.2.5 了解Instant Tracking的运作机制
18.2.6 添加自己的3D模型并设置项目
18.2.7 设置iGirl的预设体
18.2.8 完成其他设置
18.2.9 将AR应用编译运行和发布
18.3 实战:开发一个简单的《口袋动物园》应用
18.3.1 《口袋动物园》的游戏策划
18.3.2 配置开发测试环境
18.3.3 创建ImageTracker
18.3.4 添加模型
18.3.5 使用EasyTouch插件实现手势交互
18.4 本章小结
第19章 实战:在HoloLens平台开发游戏
19.1 HoloLens平台开发概述
19.2 实战:开发HoloSpace游戏
19.2.1 HoloSpace产品策划
19.2.2 配置HoloLens的开发测试环境
19.2.3 设置并运行HoloLens的测试场景
19.2.4 在Unity中导入所需的项目资源
19.2.5 模拟火箭升空的效果
19.2.6 将火箭部署到HoloLens世界中
19.2.7 调整火箭的初始位置
19.2.8 丰富对火箭操作的交互
19.2.9 游戏的UI设计和开发
19.2.10 添加背景音乐和音效
19.3 将产品发布到Windows Store平台
19.4 本章小结
第20章 实战:使用苹果ARKit和Unity开发AR应用
20.1 苹果ARKit简介
20.2 使用Unity ARKit开发iGuitarHero
20.2.1 iGuitarHero小游戏的策划
20.2.2 开发前的准备工作
20.2.3 Unity ARKit插件简介
20.2.4 创建项目并导入ARKit插件
20.2.5 运行ARKit插件的示例场景
20.2.6 在Unity中测试4DViews插件的使用
20.2.7 创建真正的游戏场景
20.2.8 添加游戏背景音乐
20.3 本章小结