第1章 万物皆可虚拟 1
1.1 虚拟现实对你来说意味着什么 2
1.2 头戴式显示器的类型 4
1.2.1 桌面VR 4
1.2.2 移动VR 4
1.3 虚拟现实与增强现实的区别 5
1.4 应用与游戏 5
1.5 本书涵盖的内容 8
1.6 VR体验类型 9
1.7 VR必备技能 9
小结 10
第2章 物体和缩放比例 12
2.1 开始使用Unity 12
2.1.1 新建Unity项目 13
2.1.2 Unity编辑器 13
2.1.3 默认世界坐标系 14
2.2 创建简单的透视图 15
2.2.1 添加立方体 15
2.2.2 添加平面 16
2.2.3 添加球体和材质 17
2.2.4 改变场景视图 19
2.2.5 添加照片 20
2.2.6 给地平面着色 21
2.3 测量工具 22
2.3.1 随手保留一个单位立方体 22
2.3.2 使用网格投影器 22
2.3.3 测量Ethan角色 23
2.4 从Blender实验中导入 25
2.5 Blender简介 25
2.5.1 立方体 28
2.5.2 UV纹理图片 28
2.5.3 导入Unity 30
2.5.4 观察者 31
小结 32
第3章 虚拟现实的构建和运行 33
3.1 虚拟现实设备集成的软件 34
3.1.1 Unity对虚拟现实的内置支持 34
3.1.2 设备特有的SDK 34
3.1.3 开源虚拟现实项目 34
3.1.4 WebVR 35
3.1.5 3D世界 35
3.2 创建MeMyselfEye预制件 36
3.3 为Oculus Rift构建项目 37
3.4 为Google Cardboard构建项目 37
3.4.1 配置Android环境 38
3.4.2 配置iOS 38
3.4.3 安装Cardboard的Unity包 38
3.4.4 添加摄像机 39
3.4.5 构建设置 39
3.4.6 试玩模式 39
3.4.7 构建并在Android中运行 40
3.4.8 构建并在iOS中运行 40
3.5 不依赖于设备的点击器类 41
3.6 虚拟现实设备的运行原理 42
3.6.1 3D立体视图 42
3.6.2 头部跟踪 45
小结 47
第4章 基于凝视的操控 48
4.1 步行者Ethan 49
4.1.1 人工智能Ethan 49
4.1.2 Navmesh烘焙 50
4.1.3 镇上的游走者 51
4.1.4 插曲——Unity编程简介 51
4.1.5 RandomPosition脚本 53
4.1.6 “僵尸”Ethan 55
4.2 向我看的方向行走 56
4.2.1 LookMoveTo脚本 57
4.2.2 添加反馈光标 59
4.2.3 观察者 60
4.3 如果眼神可以杀人 61
4.3.1 KillTarget脚本 61
4.3.2 添加粒子效果 63
4.3.3 清理工作 64
小结 64
第5章 世界坐标系UI 66
5.1 可重用的默认canvas 67
5.2 护目镜HUD 71
5.3 十字光标 73
5.4 挡风玻璃HUD 75
5.5 游戏元素UI 77
5.6 信息框 79
5.7 响应输入事件的游戏内仪表板 82
5.7.1 用按钮创建仪表板 83
5.7.2 连接水管与按钮 85
5.7.3 用脚本激活按钮 86
5.7.4 用注视高亮显示按钮 88
5.7.5 注视并点击选择 90
5.7.6 注视并聚焦选择 91
5.8 带有头部姿势的响应式UI 93
5.8.1 使用头部的位置 93
5.8.2 使用头部的姿势 95
小结 98
第6章 第一人称角色 99
6.1 深入理解Unity角色 100
6.1.1 Unity组件 100
6.1.2 Unity的Standard Assets 102
6.2 制作第一人称角色 104
6.2.1 在直视的方向上移动 105
6.2.2 保持脚着地 106
6.2.3 不要穿透固体 106
6.2.4 不要在边缘坠落 108
6.2.5 跨越小物体并处理崎岖路面 108
6.2.6 开始和停止移动 109
6.2.7 使用头部姿势开和关 109
6.3 用户校准 110
6.3.1 角色的身高 111
6.3.2 玩家的真实身高 112
6.3.3 回到中心位置 113
6.4 保持自我感 113
6.4.1 身首分离 114
6.4.2 头部和身体 115
6.4.3 双脚 115
6.4.4 身体的虚拟角色 117
6.4.5 虚拟的David le鼻子 118
6.4.6 声音提示 119
6.5 移动、传送和传感器 120
6.6 对付VR晕动症 122
小结 123
第7章 物理组件和周边环境 125
7.1 Unity的物理组件 126
7.2 弹力球 127
7.3 用头部射击 131
7.4 蹦床与弹力球 134
7.5 人类的蹦床 135
7.5.1 像一块砖 135
7.5.2 像一个人物角色 136
7.6 插曲——环境和万物 139
7.6.1 缥缈的天空 140
7.6.2 行星地球 140
7.6.3 企业标识 140
7.7 升降机 142
7.8 跳起来 143
小结 145
第8章 漫游和渲染 146
8.1 用Blender构建 147
8.1.1 墙体 147
8.1.2 天花板 150
8.2 用Unity组装场景 153
8.2.1 画廊 153
8.2.2 艺术品部件 154
8.2.3 展览计划 156
8.3 添加图片到画廊中 157
8.4 漫游动画 160
8.4.1 Unity的动画系统 160
8.4.2 脚本动画 161
8.5 优化性能和舒适感 163
8.5.1 优化实现和内容 164
8.5.2 优化Unity渲染流水线 166
8.5.3 优化目标硬件和驱动 169
8.5.4 Unity Profiler 170
小结 171
第9章 利用360° 172
9.1 360°的多媒体 173
9.2 水晶球 173
9.3 魔法球 175
9.4 全景图 178
9.5 信息图 179
9.6 等距圆柱投影 182
9.7 地球仪 183
9.8 照片球 184
9.9 视野 187
9.10 捕捉360°多媒体 188
小结 189
第10章 社交化的VR虚拟空间 191
10.1 多玩家网络 192
10.1.1 网络服务 192
10.1.2 网络架构 193
10.1.3 本地与服务器 193
10.1.4 Unity的网络系统 195
10.2 建立简单的场景 195
10.2.1 创建场景环境 196
10.2.2 创建虚拟角色的头部 197
10.3 添加多玩家网络 198
10.3 1 Network Manager和HUD 198
10.3.2 NetworkIdentity和Transform 198
10.3.3 作为一个主机运行 199
10.3.4 添加出生点位 199
10.3.5 运行两个游戏实例 200
10.3.6 关联虚拟角色与第一人称角色 201
10.4 添加多玩家到虚拟现实 202
10.4.1 OculusRift玩家 202
10.4.2 Google Cardboard玩家 204
10.4.3 下一步 206
10.5 构建和共享一个自定义的VRChat房间 206
10.5.1 预备并构建虚拟世界 207
10.5.2 承载这个世界 208
小结 208
第11章 虚拟现实的未来 210