书籍详情
《Unity虚拟现实开发实战乔纳森·林诺维斯著》[54M]百度网盘|亲测有效|pdf下载
  • Unity虚拟现实开发实战乔纳森·林诺维斯著

  • 出版社:网书网图书专营店
  • 出版时间:2020-04
  • 热度:11954
  • 上架时间:2024-06-30 09:38:03
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

基本信息

书名:Unity虚拟现实开发实战(原书第2版)

定价:99元

作者:乔纳森·林诺维斯(JonathanLinowes)著,易宗超林薇苏晓航佘宇航译 译

出版社:机械工业出版社

出版日期:2020-04-01

ISBN:9787111650836

字数:

页码:336

版次:1

装帧:平装

开本:16开

商品重量:

编辑推荐


适读人群 :游戏开发者、虚拟现实技术感兴趣人员、Unity初学者、3D设计师、游戏设计师、游戏制作人、游戏策划、游戏开发者、游戏爱好者、想要进入虚拟现实领域的程序员

Unity已经成为新一代消费级VR设备构建虚拟游戏、虚拟应用和虚拟体验的主流平台。

本书将带你进行一系列实战,并深入讨论如何使用Unity游戏引擎开发VR应用程序。

本书通过基于项目的实践方法,帮助你快速了解使用Unity进行VR开发的具体细节。你将学习使用Unity开发基于Oculus、Daydream与Vive设备的VR应用程序,探索基于凝视与手柄控制器输入、世界坐标系UI画布、移动与传送、软件设计模式、360°多媒体、时间轴动画与多人网络等众多的主题或项目,还将通过可交互式Unity编辑器(Editor)了解Unity 3D游戏引擎,并学习C#编程。

通过阅读本书,你将学到:

●在学习世界坐标系与缩放比例时,使用Unity和其他3D工具创建3D场景。

●为特定的头戴式显示器,包括Oculus、Vive与Daydream创建并运行VR应用程序。

●使用眼睛凝视、手柄控制器以及用户输入事件与虚拟对象进行交互。

●使用移动与传送漫游VR场景。

●使用物理与粒子系统实现音频火球游戏。

●基于传送与数据信息实现艺术画廊。

●使用音轨与时间轴设计并创建VR故事动画。

●使用Unity网络创建社交VR体验。

内容提要


本书通过基于项目的实践方式,详细讲解如何使用Unity 3D游戏引擎进行虚拟现实开发。通过一系列实践项目,循序渐进地阐释Unity虚拟现实项目开发的基本原则和技巧。不仅提供详细的步骤介绍,还会讨论其中涵盖的更广泛的背景和应用场景。

首先,你将学习如何使用Unity来开发可以用Oculus Rift、Google Daydream、HTC Vive等设备进行体验的VR应用程序。

然后,你将学习如何从第三人称和人称的视角融入虚拟世界。

另外,你将探索一些对于VR来说重要且可能的技术关注点。

读完本书后,你将能够用Unity开发丰富的交互式虚拟现实体验程序。

本书通过具体示例由浅入深逐步引导你了解并深入虚拟现实技术,在版的基础上,更新了使用的Unity版本,并对各个章节和项目做了大量的修改,使得本书更加具体并易于阅读。无论是初接触编程并想学习虚拟现实技术的新手,还是具有丰富编程经验,想要进入虚拟现实领域的程序员,本书都很适合你。


目录


  • 章 万物皆可虚拟 1

1.1 虚拟现实对你来说意味着什么 2

1.2 头戴式显示器的类型 3

1.2.1 桌面VR 3

1.2.2 移动VR 3

1.3 虚拟现实与增强现实的区别 4

1.4 应用与游戏 5

1.5 虚拟现实是如何运作的 7

1.5.1 立体3 D视图 7

1.5.2 头姿追踪 9

1.6 VR体验类型 10

1.7 VR技能 11

1.8 本书涵盖的内容 12

1.9 本章小结 12

  • 第2章 内容、物体和缩放比例 14

2.1 Unity入门 14

2.1.1 新建Unity项目 15

2.1.2 Unity编辑器 15

2.1.3 默认世界坐标系 16

2.2 创建简单的透视图 17

2.2.1 添加立方体 18

2.2.2 添加平面 18

2.2.3 添加球体和材质 19

2.2.4 改变场景视图 21

2.2.5 添加照片 22

2.2.6 给地平面着色 23

2.3 测量工具 24

2.3.1 随手保留一个单位立方体 24

2.3.2 使用网格投影器 24

2.3.3 测量Ethan角色 25

2.4 使用第三方内容 27

2.5 使用Blender创建3D内容 29

2.5.1 Blender简介 29

2.5.2 单位立方体 31

2.5.3 UV纹理图片 32

2.5.4 导入Unity 34

2.5.5 一些观察 35

2.6 在VR中创建3D内容 35

2.6.1 导入和导出Tilt Brush模型 37

2.6.2 使用Google Poly进行发布和导入 38

2.7 在VR中使用EditorXR编辑Unity 39

2.7.1 设置EditorXR 40

2.7.2 使用EditorXR 41

2.8 本章小结 43

  • 第3章 VR的构建和运行 44

3.1 Unity VR支持和工具包 44

3.1.1 Unity的内置VR支持 45

3.1.2 特定于设备的工具包 46

3.1.3 应用程序工具包 47

3.1.4 基于Web和JavaScript的VR 47

3.1.5 3D世界 48

3.2 为你的平台启用虚拟现实 48

3.2.1 设置目标平台 49

3.2.2 设置XR SDK 50

3.2.3 安装设备工具包 50

3.2.4 创建MeMyselfEye播放器预制件 50

3.3 构建SteamVR 52

3.4 构建Oculus Rift 53

3.5 构建Windows沉浸式MR 55

3.5.1 设置Windows 10开发人员模式 56

3.5.2 在Visual Studio中安装UWP支持 56

3.5.3 UWP构建 57

3.6 为Android设备设置 58

3.6.1 安装Java开发工具包 59

3.6.2 安装Android SDK 59

3.6.3 使用命令行工具 60

3.6.4 关于Android SDK根路径位置 61

3.6.5 安装USB设备调试和连接 61

3.6.6 配置Unity外部工具 62

3.6.7 为Android配置Unity Player Settings 63

3.7 为GearVR和Oculus Go构建 63

3.8 为Google VR构建 64

3.8.1 Google Daydream 64

3.8.2 Google Cardboard 65

3.8.3 Google VR运行模式 66

3.9 为iOS设备设置 67

3.9.1 拥有Apple ID 67

3.9.2 安装Xcode 67

3.9.3 配置iOS的Unity Player Settings 68

3.9.4 构建和运行 68

3.10 本章小结 69

  • 第4章 基于凝视的操控 70

4.1 游走者Ethan 70

4.1.1 人工智能Ethan 71

4.1.2 NavMesh烘焙 72

4.1.3 镇上的游走者 74

4.1.4 RandomPosition脚本 74

4.1.5 “僵尸”Ethan 76

4.2 向我看的方向行走 77

4.2.1 LookMoveTo脚本 77

4.2.2 添加反馈光标 79

4.2.3 穿透对象观察 80

4.3 如果眼神可以杀人 81

4.3.1 KillTarget脚本 81

4.3.2 添加粒子效果 83

4.3.3 清理工作 84

4.4 Unity C#编程简介 84

4.5 本章小结 86

  • 第5章 便捷的交互工具 87

5.1 设置场景 88

5.1.1 创建气球 88

5.1.2 使之成为预制件 88

5.2 基本按钮输入 90

5.2.1 使用Fire1按钮 90

5.2.2 OpenVR的扳机键 92

5.2.3 用Daydream控制器单击 93

5.3 轮询单击 93

5.3.1 按钮界面功能 94

5.3.2 创建并释放气球 95

5.3.3 按住按钮给气球充气 96

5.4 使用脚本化对象进行输入 98

5.4.1 创建脚本化对象 99

5.4.2 填充输入操作对象 100

5.4.3 访问输入操作对象 101

5.4.4 使用脚本化对象进行模拟测试 101

5.5 使用Unity事件处理输入 102

5.5.1 调用输入操作事件 103

5.5.2 订阅输入事件 103

5.6 使用双手 105

5.6.1 将气球设为手柄的子对象 105

5.6.2 让气球爆炸 107

5.7 交互项目 108

5.7.1 使用SteamVR交互系统进行交互 109

5.7.2 使用Daydream VR Elements进行交互 110

5.8 本章小结 112

  • 第6章 世界坐标系UI 113

6.1 学习VR设计原则 114

6.2 可重用的默认画布 116

6.3 护目镜HUD 118

6.4 十字光标 120

6.5 挡风玻璃HUD 122

6.6 游戏元素UI 124

6.7 使用文字特效插件TextMeshPro 125

6.8 信息框 126

6.9 响应输入事件的游戏内仪表板 129

6.9.1 创建带有按钮的仪表板 129

6.9.2 连接水管与按钮 131

6.9.3 用脚本激活按钮 132

6.9.4 用注视高亮显示按钮 133

6.9.5 注视并单击选择 135

6.9.6 注视并聚焦选择 136

6.10 使用VR组件指向并单击 136

6.10.1 使用Unity UI和SteamVR 137

6.10.2 使用Unity UI和Daydream 139

6.11 构建基于手腕的菜单栏 139

6.12 本章小结 140

  • 第7章 移动与舒适 141

7.1 理解Unity角色 141

7.1.1 Unity组件 142

7.1.2 Unity的Standard Assets 143

7.2 使用滑行移动 145

7.2.1 沿视线方向移动 145

7.2.2 保持脚着地 146

7.2.3 不要穿透固体对象 147

7.2.4 不要在边缘坠落 149

7.2.5 跨越小物体并处理崎岖路面 149

7.2.6 开始与停止移动 150

7.3 添加舒适模式移动 150

7.4 传送技术 153

7.4.1 凝视传送 153

7.4.2 在表面之间传送 155

7.4.3 传送生成点 157

7.4.4 其他传送考虑因素 160

7.5 传送工具包 161

7.5.1 使用SteamVR交互系统传送 161

7.5.2 使用Daydream Elements传送 162

7.6 重置中心和位置 163

7.7 对付VR晕动症 164

7.8 本章小结 166

  • 第8章 使用物理引擎 167

8.1 Unity的物理组件 167

8.2 弹力球 169

8.3 管理游戏对象 171

8.3.1 销毁坠落的对象 172

8.3.2 设置持续时间 172

8.3.3 实现一个对象池 172

8.4 用头部射击游戏 176

8.5 球拍游戏 180

8.6 射手游戏 182

8.7 完善场景 185

8.7.1 创建大火球 186

8.7.2 Skull环境 188

8.7.3 音频同步 190

8.8 本章小结 191

  • 第9章 漫游和渲染 192

9.1 用Blender构建 192

9.1.1 构建墙体 193

9.1.2 添加天花板 194

9.2 用Unity组装场景 197

9.2.1 画廊 197

9.2.2 艺术品部件 198

9.2.3 展览计划 200

9.3 将图片添加到画廊中 202

9.4 管理艺术信息数据 204

9.4.1 使用列表 204

9.4.2 使用数据结构 205

9.4.3 使用脚本化对象 206

9.5 显示艺术信息 208

9.5.1 创建标题牌匾 209

9.5.2 详细的交互信息 210

9.5.3 调整图像宽高比 212

9.6 漫游画廊 213

9.6.1 在画像之间传送 213

9.6.2 考虑房间规模 215

9.6.3 动画穿越 216

9.7 本章小结 218

  • 0章 利用360 219

10.1 360 多媒体219

10.1.1 等距圆柱投影 220

10.1.2 VR正在侵入你的视野 220

10.1.3 180 多媒体221

10.1.4 立体360 多媒体 221

10.2 有趣的光球 222

10.2.1 水晶球 222

10.2.2 地球仪 224

10.3 渲染光球 225

10.3.1 编写自定义内部着色器 226

10.3.2 魔法球 228

10.3.3 光球 229

10.3.4 播放360 视频230

10.4 使用Unity天空盒 232

10.4.1 六边形或立方体天空盒 233

10.4.2 球面全景天空盒 234

10.4.3 360 视频天空盒 235

10.4.4 3D立体天空盒 236

10.5 在Unity中捕捉360 多媒体 236

10.5.1 捕捉立方体贴图和反射探头 236

10.5.2 使用第三方库360 捕获图像 238

10.5.3 Unity内置立体360图像和视频捕获 239

10.6 本章小结 240

  • 1章 动画与VR讲故事 241

11.1 撰写我们的故事 241

11.1.1 收集资源 242

11.1.2 创建初始场景 243

11.2 Timeline和音频轨道 245

11.3 使用Timeline激活对象 247

11.4 录制Animation Track 248

11.4.1 正在生长的树 248

11.4.2 正在生长的鸟 249

11.5 使用动画编辑器 249

11.6 动画的其他属性 252

11.6.1 动画的灯光 252

11.6.2 动画脚本组件属性 253

11.6.3 控制粒子系统 255

11.7 使用动画剪辑 257

11.8 使用动画控制器 258

11.8.1 动画和动画器的定义 259

11.8.2 ThirdPersonController动画 259

11.8.3 Living Bird动画器 260

11.8.4 学习飞行 262

11.8.5 对鸟进行攻击 264

11.8.6 飞走 264

11.9 让故事更具互动性 265

11.9.1 期待播放效果 265

11.9.2 重置初始场景设置 267

11.9.3 更多互动的想法 268

11.10 本章小结 268

  • 2章 社交化的VR虚拟空间 269

12.1 多玩家网络 270

12.1.1 网络服务 270

12.1.2 网络架构 271

12.1.3 本地与服务器 271

12.1.4 Unity的网络系统 272

12.2 建立简单的场景 273

12.2.1 创建场景环境 273

12.2.2 创建虚拟角色的头部 274

12.3 添加多玩家网络 275

12.3.1 Network Manager和HUD 275

12.3.2 Network Identity和Sync Transform 275

12.3.3 作为一个主机运行 276

12.3.4 添加出生点位 276

12.3.5 运行游戏的两个实例 277

12.3.6 关联虚拟角色与人称角色 278

12.4 添加配对大厅 280

12.5 同步对象和属性 281

12.5.1 设置头球游戏 282

12.5.2 通过联网射击球 284

12.5.3 同步球变换 285

12.5.4 状态变量同步 286

12.6 高级网络主题 287

12.7 语音聊天选项 288

12.8 使用Oculus平台和虚拟角色 288

12.8.1 Oculus平台权限检查 289

12.8.2 添加本地虚拟角色 290

12.8.3 添加远程虚拟角色 291

12.9 构建和共享自定义VRChat会议室 292

12.10 本章小结 294

  • 3章 优化性能和舒适度 295

13.1 使用Unity的Profiler和Stats 296

13.1.1 Stats窗口 296

13.1.2 Profiler窗口 297

13.2 优化艺术品 298

13.2.1 设置场景 299

13.2.2 抽取模型 302

13.2.3 透明材质 303

13.2.4 细节层次 304

13.3 使用静态对象优化场景 307

13.3.1 设置场景 307

13.3.2 灯光和烘焙 307

13.3.3 遮挡删除 309

13.4 优化代码 310

13.4.1 了解Unity的生命周期 311

13.4.2 编写高效的代码 312

13.4.3 避免费时的API调用 313

13.5 优化渲染 313

13.5.1 批次处理 314

13.5.2 多通道像素填充 315

13.5.3 VR优化着色器 316

13.6 运行时性能和调试 316

13.6.1 Daydream 317

13.6.2 Oculus 318

13.7 本章小结 318

作者介绍


乔纳森林诺维斯(JonathaLinowes)创立了Parkerhill Reality Labs(一个沉浸式媒体独立工作室),是BridgeXR工具包、Power Solitaire VR游戏以及即将到来的Chess Or Die游戏的开发者。他是VR/AR的传播者、Unity开发者、企业家和教师。他拥有美国雪城大学(Syracuse University)的艺术学士学位和麻省理工学院媒体实验室(MIT Media Lab)的硕士学位。他曾在Autodesk公司和其他公司担任技术领导职务。他撰写了《Unity Virtual Reality Projects 》(2015年版)《Cardboard VR Projects for Android 》(2016) 和 《Augmented Reality for Developers 》(2017)。

序言