基本信息
- 商品名:正版新书 云仓 Unity虚拟现实开发实战(原书第□版) 通过基于项目的实践方法,助你快速了解使用U
- ISBN:9787111650836
- 定价:99
- 出版社:机械工业出版社
- 作者:[美],乔纳森·林诺维斯(Jonathan,Linowes)
参考信息(以实物为准)
- 出版时间:2020-04-01
- 印刷时间:2020-04-01
- 版次:1
- 印次:1
- 包装:平装
- 开本:16开
- 用纸:胶版纸
- 页数:336
- 字数:
编辑推荐
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游戏引擎开发VR应用程序。本书通过基于项目的实践方法,帮助你快速了解使用Unity进行VR开发的具体细节。通过Oculus、Daydream和Vive等设备的体验,你将学习如何使用Unity开发VR应用程序。在众多主题和项目中,你将探索基于凝视与手柄控制器输入、世界坐标系UI画布、移动与远程传送、软件设计模式、360°多媒体、时间轴动画与多人网络。通过交互式Unity编辑器,你将了解Unity 3D游戏引擎,并且学习C#编程。
前言序言
如今,我们正在见证虚拟现实(VR)的迅猛发展,这是一项令人激动的技术,它有望改□我们与信息、朋友和整个世界进行交互的基本方式。
戴上一个VR头戴式显示器,你就可以观看立体3D场景,可以环顾四周,还可以在虚拟空间中四处走动,并使用定位手柄控制器与虚拟对象交互。你可以拥有完整的沉浸式体验,就像真正置身于某个虚拟世界一样。
本书通过基于项目的实践方式详细讲解如何使用Unity 3D游戏引擎进行虚拟现实开发。我们将使用Unity □018和其他免费或开源软件来完成一系列实践项目、循序渐进的教程和深入的讨论。VR技术正在快速发展,我们将尝试获取基本的原则和技巧,以便实现具有沉浸感和舒适感的VR游戏和应用程序。
你将学习如何使用Unity来开发可以用Oculus Rift、Google Daydream、HTC Vive等设备进行体验的VR应用程序。我们将涵盖对于VR来说重要且可能□□□□的技术关注点。读完本书后,你将能够用Unity开发丰富的交互式虚拟现实体验程序。
多年前,我在大学学习3D计算机图形学,在研究生院学习用户界面设计,然后成立了一家小型软件公司,开发用于管理AutoCAD工程图的3D图形引擎,后来此业务出售给了Autodesk。在接下来的几年里,我专注于□D网络应用开发,在博客上记录我的技术探索,并致力于发展几家新的初创公司。然后,在□014年3月,我看到Facebook以□0亿美元的价格收购了Oculus,这引起了我的兴趣。于是我立即订购了我的□□台VR头戴式显示器(Oculus DK□开发套件),并开始利用Unity开发小型VR项目。
□015年□月,我打算写一本关于Unity VR开发的书。Packt出版社马上接受了我的建议,于是到□015年8月,本书的□□版出版了。从提案、大纲、章节草稿、审查到□终定稿和出版,只花费了短暂的时间,我很痴迷于此。
在撰写本文时,Google Cardboard发布了,但是没有消费级VR设备。DK□没有手柄控制器,只有一个XBox游戏控制器。□015年11月,□□版发布几个月后,HTC Vive推出了房间规模VR设置,同时配套有定位手柄控制器。□016年3月,Oculus Rift消费者版本发布。直到□016年1□月,也就是□□版出版近一年半之后,Oculus才发布定位手柄控制器。
自本书□□版出版以来,许多新的VR设备已经上市,硬件和软件功能得到改进,Unity游戏引擎也持续增加原生VR SDK集成和新功能来支持它们。随着行业的不断加速发展,Oculus、Google、Steam、Samsung、PlayStation、Microsoft等多家企业加入了竞争行列。
与此同时,在□016年,我与Packt合作出版了另一本书Cardboard VR Projects for Android,这是一本使用Java和Android Studio构建Google Daydream和Cardboard应用的非Unity VR书籍。(在这本书中,你可以学习为移动设备创建并使用自己的3D图形引擎。)然后在□017年,我与Packt合作编写了第三本书Augmented Reality for Developers,这是一本令人兴奋且被及时出版的书,它基于Unity的项目,适用于在iOS、Android和HoloLens设备上开发AR应用程序。
当开始修订本书的第□版时,我认为这将是一个相对简单的任务,只需要更新到当前版本的Unity、增加对定位手柄控制器的支持并进行一些调整即可。但是没那么简单虽然□□版的许多基本原理和建议没有改□,但作为一个行业,我们在短短的几年里学到了很多东西。例如,在VR中实现蹦床(我们在第□版中删去了这个项目)真的不是一个好主意,因为这可能导致晕动症
第□版进行了重大修订和扩展。每个章节和项目都已更新。我们将一些主题分为独立的章节,包括音频火球游戏(第8章)、动画(□□1章)和优化(□□3章)。我真诚地希望你能认为本书既有趣又专业,因为我们致力于创造出色的新VR内容和探索这个神奇的新媒介。
本书读者对象
如果你对虚拟现实感兴趣,想要了解它的工作原理或创建自己的VR体验,请阅读本书。无论你是不是程序员,是否熟悉3D计算机图形,是否刚开始接触虚拟现实,你都将从本书获益。当然,拥有任何Unity经验都是一种优势。如果你是Unity新手,也可以拿起这本书,但你可以首先从Unity官网上提供的一些入门教程入手(https://unity3d.com/ learn)。
游戏开发者可能已经熟悉本书中重新应用到VR项目中的概念,但可以学习到许多其他特定于VR的理念。已经了解如何使用Unity的移动设备设计师和□D游戏设计师将能发现另一个维度。工程师和3D设计师可能了解许多3D概念,但是可以学习如何使用Unity引擎开发VR。应用程序开发人员可能会欣赏VR潜在的非游戏用途,并可能希望通过学习来实现这一目标。
本书主要内容
□□章介绍游戏和非游戏应用中消费级虚拟现实的新技术以及机会,包括对立体视觉以及头姿追踪的解释。
第□章介绍Unity游戏引擎,我们将构建简单的立体模型场景,并介绍如何导入使用其他工具(如Blender、Tilt Brush、Google Poly和Unity EditorXR)创建的3D内容。
第3章介绍如何设置系统以及如何在目标设备上构建和运行Unity项目,这些设备包括SteamVR、Oculus Rift、Windows MR、GearVR、Oculus Go以及 Google Daydream。
第4章探讨VR摄像机与场景中对象的关系,包括3D光标和基于凝视的射线枪。该章还介绍如何使用C#语言进行Unity脚本
目录
译者序
前言
审阅者简介
□□章 万物皆可虚拟 1
1.1 虚拟现实对你来说意味着什么 □
1.□ 头戴式显示器的类型 3
1.□.1 桌面VR 3
1.□.□ 移动VR 3
1.3 虚拟现实与增强现实的区别 4
1.4 应用与游戏 5
1.5 虚拟现实是如何运作的 7
1.5.1 立体3 D视图 7
1.5.□ 头姿追踪 9
1.6 VR体验类型 10
1.7 VR必备技能 11
1.8 本书涵盖的内容 1□
1.9 本章小结 1□
第□章 内容、物体和缩放比例 14
□.1 Unity入门 14
□.1.1 新建Unity项目 15
□.1.□ Unity编辑器 15
□.1.3 默认世界坐标系 16
□.□ 创建简单的透视图 17
□.□.1 添加立方体 18
□.□.□ 添加平面 18
□.□.3 添加球体和材质 19
□.□.4 改□场景视图 □1
□.□.5 添加照片 □□
□.□.6 给地平面着色 □3
□.3 测量工具 □4
□.3.1 随手保留一个单位立方体 □4
□.3.□ 使用网格投影器 □4
□.3.3 测量Ethan角色 □5
□.4 使用第三方内容 □7
□.5 使用Blender创建3D内容 □9
□.5.1 Blender简介 □9
□.5.□ 单位立方体 31
□.5.3 UV纹理图片 3□
□.5.4 导入Unity 34
□.5.5 一些观察 35
□.6 在VR中创建3D内容 35
□.6.1 导入和导出Tilt Brush模型 37
□.6.□ 使用Google Poly进行发布和导入 38
□.7 在VR中使用EditorXR编辑Unity 39
□.7.1 设置EditorXR 40
□.7.□ 使用EditorXR 41
□.8 本章小结 43
第3章 VR的构建和运行 44
3.1 Unity VR支持和工具包 44
3.1.1 Unity的内置VR支持 45
3.1.□ 特定于设备的工具包 46
3.1.3 应用程序工具包 47
3.1.4 基于Web和JavaScript的VR 47
3.1.5 3D世界 48
3.□ 为你的平台启用虚拟现实 48
3.□.1 设置目标平台 49
3.□.□ 设置XR SDK 50
3.□.3 安装设备工具包 50
3.□.4 创建MeMyselfEye播放器预制件 50
3.3 构建SteamVR 5□
3.4 构建Oculus Rift 53
3.5 构建Windows沉浸式MR 55
3.5.1 设置Windows 10开发人员模式 56
3.5.□ 在Visual Studio中安装UWP支持 56
3.5.3 UWP构建 57
3.6 为Android设备设置 58
3.6.1 安装Java开发工具包 59
3.6.□ 安装Android SDK 59
3.6.3 使用命令行工具 60
3.6.4 关于Android SDK根路径位置 61
3.6.5 安装USB设备调试和连接 61
3.6.6 配置Unity外部工具 6□
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.□ Google Cardboard 65
3.8.3 Google VR运行模式 66
3.9 为iOS设备设置 67
3.9.1 拥有Apple ID 67
3.9.□ 安装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.□ NavMesh烘焙 7□
4.1.3 镇上的随机游走者 74
4.1.4 RandomPosition脚本 74
4.1.5 “僵尸”Ethan 76
4.□ 向我看的方向行走 77
4.□.1 LookMoveTo脚本 77
4.□.□ 添加反馈光标 79
4.□.3 穿透对象观察 80
4.3 如果眼神可以杀人 81
4.3.1 KillTarget脚本 81
4.3.□ 添加粒子效果 83
4.3.3 清理工作 84
4.4 Unity C#编程简介 84
4.5 本章小结 86
第5章 便捷的交互工具 87
5.1 设置场景 88
5.1.1 创建气球 88
5.1.□ 使之成为预制件 88
5.□ 基本按钮输入 90
5.□.1 使用Fire1按钮 90
5.□.□ OpenVR的扳机键 9□
5.□.3 用Daydream控制器单击 93
5.3 轮询单击 93
5.3.1 按钮界面功能 94
5.3.□ 创建并释放气球 95
5.3.3 按住按钮给气球充气 96
5.4 使用脚本化对象进行输入 98
5.4.1 创建脚本化对象 99
5.4.□ 填充输入操作对象 100
5.4.3 访问输入操作对象 101
5.4.4 使用脚本化对象进行模拟测试 101
5.5 使用Unity事件处理输入 10□
5.5.1 调用输入操作事件 103
5.5.□ 订阅输入事件 103
5.6 使用双手 105
5.6.1 将气球设为手柄的子对象 105
5.6.□ 让气球爆炸 107
5.7 交互项目 108
5.7.1 使用SteamVR交互系统进行交互 109
5.7.□ 使用Daydream VR Elements进行交互 110
5.8 本章小结 11□
第6章 世界坐标系UI 113
6.1 学习VR设计原则 114
6.□ 可重用的默认画布 116
6.3 护目镜HUD 118
6.4 十字光标 1□0
6.5 挡风玻璃HUD 1□□
6.6 游戏元素UI 1□4
6.7 使用文字特效插件TextMeshPro 1□5
6.8 信息框 1□6
6.9 响应输入事件的游戏内仪表板 1□9
6.9.1 创建带有按钮的仪表板 1□9
6.9.□ 连接水管与按钮 131
6.9.3 用脚本激活按钮 13□
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.□ 使用Unity UI和Daydream 139
6.11 构建基于手腕的菜单栏 139
6.1□ 本章小结 140
第7章 移动与舒适 141
7.1 理解Unity角色 141
7.1.1
作者简介
乔纳森林诺维斯(Jonathan Linowes)创立了Parkerhill Reality Labs(一个沉浸式媒体独立工作室),是BridgeXR工具包、Power Solitaire VR游戏以及即将到来的Chess Or Die游戏的开发者。他是VR/AR的传播者、Unity开发者、企业家和教师。他拥有美国雪城大学(Syracuse University)的艺术学士学位和麻省理工学院媒体实验室(MIT Media Lab)的硕士学位。他曾在Autodesk公司和其他公司担任技术领导职务。他撰写了《Unity Virtual Reality Projects 》(□015年□□版)《Cardboard VR Projects for Android 》(□016) 和 《Augmented Reality for Developers 》(□017)。