第 1 章 虚拟现实概述 1
1.1 虚拟现实的基本概念 1
1.2 虚拟现实的发展历史 2
1.2.1 虚拟现实的前身 2
1.2.2 虚拟现实的萌芽 2
1.2.3 虚拟现实理论的应用 3
1.3 虚拟现实的分类 4
1.3.1 桌面式虚拟现实 4
1.3.2 沉浸式虚拟现实 4
1.3.3 增强式虚拟现实 5
1.3.4 分布式虚拟现实 5
1.4 虚拟现实的应用领域 6
1.4.1 教育 6
1.4.2 军事 7
1.4.3 城市仿真 8
1.4.4 工业 8
1.4.5 医学 9
1.4.6 科学计算可视化 10
1.4.7 娱乐 10
1.5 虚拟现实技术的研究现状 11
1.5.1 国外的研究现状 11
1.5.2 的研究现状 11
1.6 本章小结 12
1.7 本章习题 12
第 2 章 初识 Unity 13
2.1 Unity 的环境搭建 13
2.1.1 Unity 的下载及安装 13
2.1.2 Unity Hub 的下载安装和
许可证激活 14
2.1.3 Visual Studio 的安装 16
2.1.4 新建工程和工程文件夹 16
2.2 Unity 界面 17
2.2.1 Project 面板 17
2.2.2 Hierarchy 面板 18
2.2.3 Scene 面板 20
2.2.4 工具栏 23
2.2.5 Inspector 面板 24
2.2.6 Game 面板和 Console 面板 25
2.2.7 预制体资源 27
2.2.8 资源包的导入和导出 29
2.3 实操案例 30
2.4 本章小结 36
2.5 本章习题 36
第 3 章 Unity 的常用组件 37
3.1 地形 37
3.1.1 地形的创建 37
3.1.2 地形的基本操作 38
3.1.3 地形的纹理添加及参数设置 40
3.2 实时光源 44
3.2.1 平行光 44
3.2.2 点光源 46
3.2.3 聚光灯 47
3.3 烘焙与贴图 48
3.3.1 光照烘焙 48
3.3.2 反射探针 50
3.3.3 光照探针 51
3.3.4 贴图 52
3.4 摄像机 53
3.4.1 Camera 组件中的可编辑
参数 54
3.4.2 实践练习——小地图的制作 55
3.5 音频和视频 58
3.5.1 音频文件导入 58
3.5.2 音频源和音频监听器 58
3.5.3 使用代码控制音频源 60
3.5.4 视频 60
3.6 实操案例 62
3.7 本章小结 64
3.8 本章习题 64
第 4 章 脚本基础 65
4.1 Unity 脚本编辑器 65
4.2 脚本的基础 66
4.2.1 创建脚本时的注意事项与
项目工程设计 66
4.2.2 创建脚本 66
4.2.3 改脚本模板 67
4.3 脚本的常用核心类 68
4.3.1 GameObject 类 68
4.3.2 MonoBehaviour 类 70
4.3.3 Application 类 71
4.3.4 Transform 类 73
4.3.5 Time 类 74
4.4 脚本的生命周期 74
4.4.1 生命周期图和调用顺序 75
4.4.2 Unity 事件函数 76
4.5 脚本的绑定、初始化、销毁
和 新 76
4.6 协同程序 78
4.6.1 协同程序的定义与功能 78
4.6.2 协同程序任务与停止协同
程序 79
4.7 多脚本管理 80
4.7.1 脚本的执行顺序 80
4.7.2 多脚本优化 80
4.7.3 单例 81
4.7.4 脚本的调试 82
4.8 Unity 的其他常用类与输入
管理器 82
4.8.1 Unity 的其他常用类 82
4.8.2 Unity 输入管理器 83
4.9 实操案例 85
4.10 本章小结 90
4.11 本章习题 90
第 5 章 3D 数学基础 91
5.1 3D 坐标系基础 91
5.1.1 笛卡儿坐标系 91
5.1.2 几种常用坐标系 93
5.1.3 坐标系之间的转换 93
5.2 向量 94
5.2.1 向量的基本概念 95
5.2.2 向量的运算 96
5.3 矩阵 99
5.3.1 矩阵的运算 99
5.3.2 特殊矩阵 100
5.4 实操案例 101
5.5 本章小结 103
5.6 本章习题 104
第 6 章 UGUI 界面开发 105
6.1 基础组件和事件 105
6.1.1 Canvas 组件 105
6.1.2 EventSystem 组件 107
6.1.3 Text 组件 107
6.1.4 Panel 组件 109
6.1.5 Image 组件 109
6.1.6 Button 组件 110
6.1.7 Button 事件 110
6.2 锚点与屏幕自适应 111
6.2.1 锚点 111
6.2.2 屏幕自适应 112
6.3 UGUI 组件 112
6.3.1 Toggle 和 Slider 组件 112
6.3.2 Scrollbar 和 ScrollView 组件 114
6.3.3 实践练习——模拟关卡选择
界面 114
6.4 使用 UGUI 进行布局管理 115
6.5 实操案例 116
6.6 本章小结 117
6.7 本章习题 117
第 7 章 物理系统 118
7.1 Rigidbody 组件 118
7.1.1 Rigidbody 组件的使用 118
7.1.2 力的使用 119
7.2 碰撞 120
7.2.1 添加碰撞体组件 120
7.2.2 碰撞检测 121
7.2.3 触发检测 122
7.3 物理材质 124
7.4 Character Controller 组件 125
7.5 射线 127
7.5.1 射线的原理 127
7.5.2 射线碰撞 128
7.6 关节组件 129
7.7 物理管理器 131
7.8 实操案例 132
7.9 本章小结 134
7.10 本章习题 134
第 8 章 动画系统 135
8.1 Animation 动画编辑器 135
8.1.1 旧版动画的制作 135
8.1.2 新版动画的制作 139
8.2 外部动画资源的导入和设置 139
8.2.1 资源的导入 139
8.2.2 资源的设置 140
8.3 Mecanim 动画系统 143
8.3.1 动画状态机 144
8.3.2 动画分层和遮罩 147
8.3.3 动画混合 148
8.3.4 子状态机 152
8.3.5 动画 IK 控制 153
8.3.6 动画目标匹配 155
8.3.7 状态机行为脚本 157
8.3.8 动画状态机复用 159
8.4 实操案例 160
8.5 本章小结 164
8.6 本章习题 164
第 9 章 导航寻路功能 165
9.1 基本导航寻路功能 165
9.1.1 导航寻路功能的基础知识 165
9.1.2 实践练习——基本导航
寻路 167
9.2 寻航代理组件 168
9.2.1 斜坡 168
9.2.2 Off Mesh Link 组件 169
9.3 网格分层 170
9.4 导航障碍物 171
9.5 本章小结 172
9.6 本章习题 173
第 10 章 Unity 数据持久化技术 174
10.1 PlayerPerfs 持久化技术 174
10.1.1 数据的存取 174
10.1.2 实践练习——音量设置
持久化 175
10.2 JSON 持久化技术 177
10.2.1 JSON 简介 177
10.2.2 JSON 的基本语法 177
10.2.3 将 Excel 数据转为 JSON
数据 179
10.2.4 读取和存储 JSON 文件的
两种方式 180
10.3 实操案例 184
10.4 本章小结 190
10.5 本章习题 190
第 11 章 虚拟现实产品的开发 191
11.1 HTC VIVE 191
11.2 Steam 192
11.2.1 Steam 的下载和安装 192
11.2.2 创建 Steam 账户 193
11.3 SteamVR Plugin 194
11.3.1 SteamVR Plugin 的导入 194
11.3.2 SteamVR Plugin 的操作 196
11.4 实操案例 199
11.5 本章小结 215
11.6 本章习题 215
第 12 章 增强现实产品的开发 216
12.1 增强现实工具 216
12.1.1 Vuforia 216
12.1.2 ARKit 217
12.1.3 ARCore 217
12.1.4 AR Foundation 217
12.1.5 EasyAR 218
12.1.6 VoidAR 218
12.1.7 AR SDK 小结 219
12.2 Web AR 219
12.2.1 WebAR 219
12.2.2 KiviSense 在线 AR 制作
引擎 220
12.3 实操案例 223
12.3.1 图像追踪识别技术 223
12.3.2 物体追踪识别技术 228
12.4 本章小结 229
12.5 本章习题 229
第 13 章 综合案例——使用 VDP
进行开发 230
13.1 VDP 简介 230
13.1.1 基本介绍 230
13.1.2 适用范围 231
13.2 使用 VDP 前的准备 231
13.2.1 安装软件 231
13.2.2 授权 Unity 许可证 231
13.2.3 登录 VDP 231
13.3 使用 VDP 制作资源 232
13.3.1 制作后台的界面简介 232
13.3.2 处理模型 233
13.3.3 导入模型 233
13.3.4 处理模型效果 234
13.3.5 实现简易 VR 交互 235
13.3.6 发布效果图、渲染视频、
全景图 237
13.3.7 使用 VDP 发布资源 239
13.4 本章小结 240
13.5 本章习题 240
第 14 章 综合案例——毕业设计
展览系统开发 241
14.1 毕业设计展览系统简介 241
14.2 项目开发过程 242
14.2.1 项目创建及场景的导入 242
14.2.2 开始场景功能的实现 242
14.2.3 主场景功能的实现 244
14.3 本章小结 250
14.4 本章习题 250