首页>参考读物>计算机科学与技术>软件与程序设计

Unity AR/VR开发:从新手到专家
作者 : 王寒 曾坤 张义红 著
出版日期 : 2017-12-12
ISBN : 978-7-111-58463-6
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 455
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

全书内容分为三篇。1.第一篇是入门篇,针对完全没有任何Unity开发经验的开发者。学完本部分内容后,开发者应该对Unity的基本知识有所了解。
2.第二篇是进阶篇,里面涵盖了VR/AR开发所必须掌握的Unity3d技能。
学完本部分内容后,开发者应该掌握VR/AR开发所必须具备的Unity3d技能。3.第三篇是实战篇,主要通过实战案例的开发学习来掌握主流VR/AR设备平台的知识和技能。学完本部分内容后,学员应对主流的VR/AR设备平台及其开发工具有充分的了解和认识。

图书特色

资深专家与社区鼎力推荐,知名专家撰写,从入门到进阶,贯穿热点实战与设备;本书细化到编程语言、脚本与设计,从Unity应用策划到发布,真正贴近实际AR/VR开发。
全书共三篇,20章。
第一篇是入门篇(第1~2章),针对完全没有任何Unity开发经验的开发者,帮助了解Unity编辑器,以及C#编程基础。
第二篇是进阶篇(第3~13章),以核心技术讲解为第一要务,围绕一个贯穿始终的BattleStar项目,讲解AR/VR开发所必须掌握的Unity3D技能。这些技能包括游戏场景与资源创建、光照系统、粒子系统、原生UI系统、动画系统、寻路系统、物理系统、音效系统、数据处理与优化、网络系统等。
第三篇是实战篇(第14~20章),通过数个实战案例,以游戏的策划、开发、部署与发布为序,掌握主流AR/VR设备平台、SDK、工具,如HTC Vive、Google Daydream VR平台、Oculus平台、微软HoloLens平台和苹果ARKit等。本篇不但可以让读者了解、认识主流平台设备,还可以通过多个实战项目熟练掌握AR/VR开发。
对于已经有一定Unity开发经验的开发者,则可以跳过本书的前两篇内容,直接进入第三篇内容的学习。

AR/VR被誉为改变未来的前沿技术之一,更是为非凡的交互设计与体验提供诸多可能。Unity作为AR/VR开发的主流工具之一,以其平台支持广、可扩展性强、学习曲线低而受到拥趸。本书内容涵盖Unity3D基础入门知识,AR/VR开发所必须掌握的Unity3D技能,以及在不同设备平台进行实际开发所需要掌握的系统知识,所有内容讲解都融入大量实战分析与操作,系统性和实战性尤佳。

本书是市面上为数不多的将概念和实战相结合,且适合零基础开发者的AR/VR开发书籍。从Unity游戏引擎的基本概念、AR/VR开发所需的Unity3D技能,到当前主流的AR/VR开发平台的实战技能都有涉及。希望本书的出版能降低AR/VR技术的入门门槛,培养出更多的AR/VR开发从业者。
—— 曹水平 新游互联合伙人、新游畅玩CEO
本书作为一本工具书,个人认为具有很强的实用价值。通常我在看工具书的时候会从目录看起,通过目录直接找到所需要的内容。而本书的三篇内容,从入门到进阶再到实战,结构非常清晰,也很全面地对当下AR/VR开发技术进行了沉淀。相信那些对AR/VR开发感兴趣的人来说,是有帮助的。
—— 邓梁 游戏葡萄主编
AR是下一代计算和交互平台。本书从入门到实操,使用Unity作为开发工具,借助SDK创造出精彩的AR内容。AR 创意落地,从未如此简单。
—— 杜威 广州亮风台总监

王寒,首批AR/VR应用开发者,国内首批iOS移动应用开发者,资深果粉;知乎专栏“笨猫快乐学编程”作者,蛮牛社区专栏作者。曾任职三星电子,于2015年创办赛隆空间科技,主要面向VR/AR/MR平台(HTC Vive、Oculus、HoloLens和iOS/Android)开发相关应用,目前已上线的产品有Project Minsky、未来教室、消防安全VR版、Cute Mimi等产品。《虚拟现实:引领未来的人机交互革命》《Cocos2D权威指南》主要作者。
曾坤,华中科技大学模式识别与智能系统专业硕士,中科院自动化所模式识别与智能系统专业博士,华中科技大学图像所博士后研究院、中山大学软件学院副教授,主要研究方向为增强现实、人工智能与模式识别。相关论文曾被SCI收录,选入CVPR(计算机视觉顶级会议),并曾在SIGGRAPH 2010上做大会报告。
张义红,香港理工大学博士,东华大学信息学院副院长、副研究员。主要研究方向为增强现实、图像处理与模式识别。

图书前言

为什么要写这本书
2014年3月,Facebook宣布以20亿美元收购虚拟现实设备Oculus Rift的制造商Oculus VR,从此沉寂已久的虚拟现实行业涅槃重生。
2015年1月,微软与Windows10系统一同发布了堪称黑科技神器的MR设备HoloLens。
2016年5月,Google I/O全球开发者大会正式发布了全新的移动VR平台Daydream,吹响了向VR进军的号角。
2017年6月,苹果WWDC大会重磅推出了ARKit,让iOS平台一夜之间成为最大的AR设备平台,更让虚拟现实进入更多开发者的视野。
随着越来越多的大公司和创业团队进入AR/VR领域,AR/VR开发人才的需求量也越来越大。
在面向AR/VR的开发工具中,Unity3D无疑是目前支持设备平台最广、扩展性最强的一款工具之一。
无论是Unity新手,还是具备一定Unity开发经验的开发者,想要进入AR/VR领域都迫切需要一本书带领他们跨过第一道坎,从而真正了解和掌握AR/VR开发。
本书的内容将涵盖Unity3D的基础入门知识,进行AR/VR开发所必须掌握的Unity3D技能,以及在不同的AR/VR设备平台进行实际开发所需要掌握的知识。
本书特色
目前市面上的AR/VR开发书籍相对较少,而且主要针对有经验的开发者。而本书的内容对零基础的新手开发者也会十分友好。
和以往只重视概念讲解、不重视实际操作的Unity开发书籍不同,本书从基础知识到进阶技能,到最后的AR/VR开发实战,每一篇的内容都会融入大量的实战讲解。
对于有经验的Unity开发者,可以跳过前两篇的内容,直接进入第三篇AR/VR实战项目的开发讲解。其中针对HTC Vive、Oculus Rift、Google Daydream VR、HoloLens、Vuforia、Wikitude、ARKit等几个主流的AR/VR设备平台和SDK,都分别用单独一章进行实战项目
讲解。
读者对象
对AR/VR开发感兴趣,但是之前并没有任何Unity3D开发经验的初学者。
对AR/VR开发感兴趣,并且已经具备了一定Unity3D开发经验的开发者。
对AR/VR开发感兴趣,想了解项目开发整体流程的管理者或运营者等。
如何阅读本书
全书内容分为三篇,共计20章内容。
第一篇是入门篇,针对完全没有Unity开发经验的开发者。
学完本部分内容后,读者应该对Unity的基本知识有所了解,包括常见3D引擎的对比分析,以及Unity的基本使用,如界面、基本概念(物体、组件等)、C#编程。
第1章 对主流的3D游戏引擎进行对比分析,说明使用Unity进行AR/VR开发的优缺点,并简单介绍Unity的发展史及其安装、授权与服务,最后还介绍了Unity学习资源的获取途径。
第2章 对Unity的编辑器做了简单介绍,并着重介绍了Unity中的核心概念和子系统,以及Unity Asset Store资源商城。
第3章 对C#语言的开发环境、基本语法和使用做了简单介绍,同时也介绍了如何在Unity中使用C#进行开发。
第二篇是进阶篇,涵盖了AR/VR开发所必须掌握的Unity3D技能。
学完本部分内容后,读者应该掌握AR/VR开发所必须具备的Unity3D技能,包括如何将3D场景和人物模型导入到游戏场景中,如何利用PBS理论和着色器美化材质、贴图和画面,如何使用Unity的光照系统打造亦真亦幻的环境,如何使用Unity动画机制让场景中的物体、角色甚至UI界面产生奇妙的动画效果,如何利用寻路机制和AI让游戏中的角色具备模拟真人的行为模式,如何使用物理系统和碰撞机制让游戏中的世界像现实世界一样遵循物理法则,如何在游戏中添加背景音乐、音效并打造AR/VR的特殊真实场景音效,如何添加多人游戏网络机制,以及如何创建游戏中的UI交互系统。
第4章 介绍了如何在Unity中创建基础的游戏场景、创建外部的游戏资源,以及如何导入外部的游戏资源。在实战环节,介绍了如何创建BattleStar项目并准备所需的游戏资源。
第5章 详细介绍了Unity中的Enlighten光照系统,以及全局光照的概念和具体使用。在实战环节,介绍了如何给BattleStar项目的游戏场景添加光照。
第6章 详细介绍了Unity中的Shuriken粒子系统、Shader和Post Processing,从而了解如何让游戏画面栩栩如生。在实战环节,介绍了如何通过设置场景材质、添加粒子系统特效、添加后处理特效及使用第三方插件等方式来完善BattleStar游戏场景的视觉效果。
第7章 介绍了Unity的原生UI系统UGUI,及其各种控件的使用。在实战环节,引导大家一步步学习如何给BattleStar游戏添加UI。
第8章 介绍了Unity的动画系统,包括Legacy动画系统和最新的Mecanim动画系统。在实战环节,介绍了如何添加Animator、设置状态机、编写控制角色动画的脚本等,从而让BattleStar游戏中的角色动起来。
第9章 介绍了Unity中的寻路系统,包括其内部工作原理、NavMesh烘焙设置等。在实战环节,通过给NPC角色对象添加并设置NavMeshAgent组件,来实现BattleStar游戏中的寻路系统。
第10章 详细介绍了Unity中的物理系统,以及各种相关的组件,如Rigidbody、Collider和Raycast等。在实战环节,介绍了如何在BattleStar游戏的场景中添加和设置物理碰撞系统。
第11章 介绍了Unity中的音效系统,包括Audio Source和Audio Reverb Zone等的设置和使用。在实战环节,介绍了如何给BattleStar游戏添加背景音乐和音效。
第12章 介绍了Unity中数据存取的常用方法,以及性能优化的原则和常用方法。在实战环节,详细说明了如何给BattleStar游戏添加数据存取机制,并对游戏进行优化。
第13章 介绍了Unity中的网络系统,包括原生的UNET和第三方插件Photon。在实战环节,详细介绍了如何使用Unity和Photon创建一个简单的多人在线游戏。
第三篇是实战篇,主要通过实战案例的开发学习来掌握主流AR/VR设备平台的知识和技能。
学完本部分内容后,读者应对主流的AR/VR设备平台及其开发工具有充分的了解和认识。与此同时,读者还应通过实战项目熟练掌握几个主流AR/VR设备平台的开发知识,如HTC Vive、Google Daydream VR平台、Oculus平台、微软HoloLens平台和苹果ARkit等。读者还需要掌握主流的AR开发SDK,特别是如何使用Unity和高通Vuforia SDK开发AR应用。
第14章 从整体的角度介绍了虚拟现实的相关技术,即立体显示技术、场景建模技术和自然交互技术。此外,还介绍了当前最主流的虚拟现实设备、主流的开发工具和SDK,以及虚拟现实应用开发的基本流程和注意事项。
第15章 详细介绍了HTC Vive和Oculus的设备与平台开发常识,包括其基本技术原理、相关的第三方插件,以及如何配置开发测试环境等。最后通过一个完整的跨平台对战游戏引导读者一步步来学习HTC Vive和Oculus平台的联网游戏开发。
第16章 详细介绍了Google Daydream VR的设备与平台开发常识,并通过一个完整的示例项目来学习如何配置开发测试环境、如何设计与实现游戏、如何将游戏适配到Google Daydream VR平台,以及如何将产品发布到Google Play VR和Daydream平台。
第17章 详细介绍了一款重要的AR SDK,即Vuforia SDK,包括其基本的功能、授权类型、工具和资源,以及支持的设备与平台等。最后通过一个示例项目来引导读者一步步学习如何使用Unity和Vuforia开发AR互动应用。
第18章 详细介绍了另外一款重要的AR SDK,即Wikitude SDK,包括其主要功能特性、授权方式、支持的设备与平台,以及它与Vuforia之间的对比分析。最后通过两个示例项目来引导读者学习如何使用Unity和Wikitude来开发AR互动应用。
第19章 详细介绍了HoloLens的设备与平台开发常识,包括其重要的交互方式,如语音交互、手势动作识别、实时场景建模和社交分享功能等。最后通过一个完整的示例项目来引导读者学习如何使用Unity在HoloLens平台开发游戏,并将其发布到微软官方的Windows Store中。
第20章 详细介绍了当前最热门的AR SDK,即苹果的ARKit,包括其功能特性、支持的设备与平台。最后通过一个完整的示例项目来引导读者学习如何使用ARKit和4DViews插件来开发AR互动应用。
勘误和支持
由于AR/VR开发领域是一个全新的技术领域,且技术的发展变化日新月异。因此,书中的内容可能会出现版本兼容性的问题。同时,由于笔者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,可以在vr910论坛本书专区(http://www.vr910.com/forum.php gid=148)来留言和讨论。如果想获取相关技术话题更为详细的知识,欢迎访问我的知乎专栏(http://zhuanlan.zhihu.com/kidscoding)或个人网站(http://icode.ai)。同时,书中的所有示例项目,除了出版社(www.hzbook.com)提供的下载途径之外,也会托管在Github上面(https://github.com/eseedo)。同时也欢迎大家关注赛隆文化(笔者公司)二维码。

致谢
感谢Unity官方文档,给我提供最全面、最深入、最准确的参考材料。
感谢Facebook、Google、HTC、Apple、百度、腾讯、阿里等众多国内外IT巨头对虚拟现实领域的关注和巨大的资源支持。
感谢4DViews、N3K EN、Edgaras Art、MatthewHallberg等提供了众多免费的优质资源和参考教程。
感谢本书的另两位共同作者曾坤和张义红,以及为本书撰写提供了相关示例项目和资源的团队成员,包括王少笛、向伟、王懂岳、周建坤、李丹、万成、董应承等。没有大家的共同思考和努力,这本书的完成是不可想象的。
感谢赛隆文化团队成员的支持,包括卿伟龙、涂晓华、廖婧进等,以及众多没有在这里提到的朋友。
感谢机械工业出版社华章分社的编辑高婧雅,在近一年的时间中始终支持我的写作,你的鼓励和帮助引导我顺利完成全部书稿。
最后要特别感谢我的家人在写作期间给予的支持,你们一直是我前进的最大动力。

王寒

上架指导

计算机\程序设计

封底文字

AR/VR被誉为改变未来的前沿技术之一,更是为非凡的交互设计与体验提供诸多可能。Unity作为AR/VR开发的主流工具之一,以其平台支持广、可扩展性强、学习曲线低而受到拥趸。本书内容涵盖Unity3D基础入门知识,AR/VR开发所必须掌握的Unity3D技能,以及在不同设备平台进行实际开发所需要掌握的系统知识,所有内容讲解都融入大量实战分析与操作,系统性和实战性尤佳。
本书是市面上为数不多的将概念和实战相结合,且适合零基础开发者的AR/VR开发书籍。从Unity游戏引擎的基本概念、AR/VR开发所需的Unity3D技能,到当前主流的AR/VR开发平台的实战技能都有涉及。希望本书的出版能降低AR/VR技术的入门门槛,培养出更多的AR/VR开发从业者。

——曹水平,新游互联合伙人、新游畅玩CEO
本书作为一本工具书,个人认为具有很强的实用价值。通常我在看工具书的时候会从目录看起,通过目录直接找到所需要的内容。而本书的三篇内容,从入门到进阶再到实战,结构非常清晰,也很全面地对当下AR/VR开发技术进行了沉淀。相信那些对AR/VR开发感兴趣的人来说,是有帮助的。
——邓梁,游戏葡萄主编
AR是下一代计算和交互平台。本书从入门到实操,使用Unity作为开发工具,借助SDK创造出精彩的AR内容。AR 创意落地,从未如此简单。
——杜威,广州亮风台总监

图书目录

本书赞誉
前言
第一篇 入门篇
第1章 初识神兵:为什么选择Unity 2
1.1 常用3D引擎介绍 2
1.1.1 什么是游戏引擎 2
1.1.2 游戏引擎架构基础 3
1.1.3 主流3D引擎对比分析 6
1.2 Unity的发展史及代表作品 7
1.2.1 Unity的前世今生 7
1.2.2 Unity的代表作品 8
1.3 Unity的授权、服务与安装 10
1.3.1 Unity的授权类型和服务 10
1.3.2 Unity的安装 10
1.4 如何获取Unity开发的学习资源 12
1.4.1 Unity的开发者官方认证培训 12
1.4.2 Unity官方的网站资源 12
1.4.3 值得推荐的第三方学习资源 13
1.5 本章小结 14
第2章 蹒跚学步:和Unity的第一次亲密接触 15
2.1 Unity编辑器入门 15
2.1.1 界面布局 15
2.1.2 Unity的工具栏 19
2.1.3 顶部菜单栏 22
2.1.4 Console视图 26
2.2 Unity中的核心概念和子系统 27
2.2.1 游戏场景 27
2.2.2 游戏对象 27
2.2.3 组件 28
2.2.4 预设体 29
2.2.5 Unity的核心子系统 29
2.3 Unity Asset Store游戏资源商城 32
2.4 本章小结 33
第3章 无往不利:在Unity中使用C#进行编程 34
3.1 C#语言概述 34
3.1.1 为什么选择C# 34
3.1.2 C#的开发环境 35
3.2 C#的基本语法和使用 35
3.2.1 变量和数据类型 35
3.2.2 表达式与运算符 37
3.2.3 流程控制 43
3.2.4 函数 45
3.2.5 类、对象和方法 48
3.3 Unity的脚本系统 51
3.3.1 创建脚本 52
3.3.2 MonoDevelop编辑器及Visual Studio 54
3.3.3 事件函数 54
3.4 本章小结 58
第二篇 进阶篇
第4章 创建一个新世界:游戏场景 60
4.1 创建基础的游戏场景 60
4.1.1 Unity中的地形引擎 60
4.1.2 基本几何体的使用 65
4.1.3 添加天空盒 66
4.2 创建外部的游戏资源 68
4.2.1 3D模型、材质和动画的创建工具 68
4.2.2 音效创建工具 71
4.2.3 其他资源创建工具 71
4.3 导入外部的游戏资源 71
4.3.1 2D图像文件的导入和设置 72
4.3.2 3D模型的导入和设置 72
4.3.3 3D动画的导入和设置 73
4.3.4 音频和视频的导入和设置 74
4.3.5 Unity资源包的导入和导出 74
4.4 实战:创建BattleStar项目并准备游戏资源 75
4.4.1 BattleStar游戏的策划与设计 75
4.4.2 创建BattleStar项目并添加版本控制 76
4.4.3 创建并导入BattleStar项目所需的3D美术资源 76
4.4.4 创建BattleStar的基本游戏场景 81
4.5 本章小结 88
第5章 有了光就有了一切:Enlighten 89
5.1 Unity光照系统介绍 89
5.1.1 Light组件简介 89
5.1.2 常见的光源类型 90
5.1.3 Light inspector中的参数简介 91
5.2 全局光照 93
5.2.1 全局光照简介 93
5.2.2 烘焙 94
5.2.3 Lightmap的使用 95
5.2.4 Light Probe和Re ection Probe的使用 95
5.3 实战:给BattleStar游戏场景添加光照 100
5.3.1 给场景添加光照前的准备工作 101
5.3.2 给场景添加太阳光 101
5.3.3 添加发光贴图 102
5.3.4 添加点光源 103
5.3.5 添加Light Probe Group 107
5.3.6 添加Ref lection Probe 110
5.3.7 进行光照烘焙处理 111
5.4 本章小结 113
第6章 让游戏画面栩栩如生:粒子系统和其他 114
6.1 Shuriken粒子系统 114
6.1.1 什么是粒子系统 114
6.1.2 Shuriken粒子系统 115
6.2 Shader的使用 117
6.2.1 什么是Shader 117
6.2.2 Unity中的标准Shader 118
6.2.3 创建自定义的Shader 126
6.3 Post Processing的使用 130
6.3.1 Post Processing简介 130
6.3.2 如何在Unity项目中添加Post Processing 131
6.4 实战:美化BattleStar游戏场景的视觉效果 133
6.4.1 设置场景材质(标准Shader的使用) 133
6.4.2 制作添加粒子系统特效1:烟尘 134
6.4.3 制作添加粒子系统特效2:火花 138
6.4.4 给游戏添加后处理特效 142
6.4.5 第三方插件Amplify Shader Editor的使用 147
6.5 本章小结 155
第7章 玩家的好帮手:UI系统 156
7.1 Unity中的UI系统简介 156
7.1.1 UGUI系统简介 156
7.1.2 Canvas简介 157
7.1.3 交互元素简介 163
7.2 实战:给BattleStar游戏添加UI 168
7.3 本章小结 173
第8章 让角色活灵活现:Unity中的动画系统 174
8.1 Unity动画系统 174
8.1.1 Legacy Animation System 174
8.1.2 Mecanim动画系统概览 175
8.1.3 Mecanim动画系统的使用 179
8.2 实战:让BattleStar游戏中的角色动起来 183
8.2.1 导入NPC角色资源 183
8.2.2 设置NPC基础状态机 184
8.2.3 添加状态机之间的切换 187
8.2.4 编写控制角色动画的脚本 188
8.3 本章小结 190
第9章 最简单的游戏AI:NavMesh寻路系统 191
9.1 Unity中的寻路系统 191
9.1.1 寻路系统内部工作原理 191
9.1.2 烘焙设置:NavMesh 192
9.1.3 添加障碍物:NavMesh Obstacle 195
9.1.4 跳过障碍物:Off-Mesh Link 196
9.2 BattleStar游戏实战:在游戏中使用寻路系统 196
9.2.1 添加地板对象的寻路烘焙 197
9.2.2 在NPC角色对象上添加并设置寻路功能 199
9.3 本章小结 202
第10章 真实世界的法则:物理引擎 203
10.1 Unity中的物理引擎系统 203
10.1.1 物理系统概述 203
10.1.2 Rigidbody组件 203
10.1.3 Collider组件 208
10.1.4 Raycast 211
10.2 BattleStar游戏实战:给游戏添加物理系统 212
10.2.1 BattleStar游戏中的物理系统设计 212
10.2.2 在场景中添加物理碰撞系统 213
10.3 本章小结 217
第11章 且听风吟:音乐和音效 218
11.1 Unity中的Audio系统 218
11.1.1 Audio系统概述 218
11.1.2 Audio Source 219
11.1.3 Audio Reverb Zone 222
11.2 实战:给BattleStar游戏添加背景音乐和音效 223
11.2.1 将音乐和音效资源导入到项目中 223
11.2.2 给游戏添加背景音乐 224
11.2.3 给游戏添加音效 225
11.3 本章小结 227
第12章 让游戏更顺畅:数据存取与性能优化 228
12.1 Unity中的数据存取 228
12.1.1 使用PlayerPrefs 229
12.1.2 使用XML 229
12.1.3 使用数据库 230
12.2 Unity中的性能优化 230
12.2.1 Unity中的遮挡剔除 231
12.2.2 使用Pro ler和Frame Debugger 232
12.2.3 脚本优化 233
12.3 实战:给BattleStar添加数据存取机制并优化游戏 235
12.3.1 游戏数据存取机制的设计 235
12.3.2 实现游戏数据存取机制 237
12.3.3 对游戏性能进行优化 241
12.4 本章小结 245
第13章 一个人的世界很孤单:Unity网络编程 246
13.1 UNET简介 246
13.1.1 UNET中的服务器 247
13.1.2 High Level API 248
13.1.3 Transport Layer API 249
13.2 Unity中的第三方网络插件:Photon 250
13.2.1 Photon的主要功能特性 250
13.2.2 Photon Cloud与Photon Server 251
13.2.3 PUN、PUN+与UNET 251
13.3 实战:使用Unity和Photon创建一个简单的多人在线游戏 252
13.3.1 PhotonFPS游戏的产品策划 252
13.3.2 创建Unity项目和基础场景 253
13.3.3 优化和完善游戏 259
13.3.4 添加语音对话功能 262
13.4 本章小结 264
第三篇 实战篇
第14章 虚拟现实开发技术入门 266
14.1 虚拟现实的技术基础 266
14.1.1 立体显示技术 266
14.1.2 场景建模技术 267
14.1.3 自然交互技术 268
14.2 主流的虚拟现实设备 269
14.2.1 Oculus Rift 269
14.2.2 HTC Vive 270
14.2.3 Sony PlayStation VR 271
14.2.4 Samsung Gear VR 272
14.2.5 Google Daydream 272
14.2.6 Microsoft HoloLens 272
14.2.7 苹果iGlass 273
14.3 主流的虚拟现实开发工具 273
14.3.1 虚拟现实开发平台简介 273
14.3.2 第三方工具和SDK 274
14.4 虚拟现实应用开发的基本流程和注意事项 276
14.4.1 虚拟现实应用开发的基本流程 276
14.4.2 虚拟现实应用开发的注意事项 278
14.5 本章小结 280
第15章 实战:跨HTC Vive和Oculus Rift平台开发VR游戏 281
15.1 HTC Vive平台开发概述 281
15.1.1 HTC Vive设备及平台简介 281
15.1.2 Lighthouse技术原理 282
15.1.3 HTC Vive手柄交互详解 283
15.1.4 Steam VR插件简介 283
15.1.5 VRTK插件简介 284
15.2 配置HTC Vive的开发测试环境 285
15.2.1 安装HTC Vive硬件和SteamVR软件 285
15.2.2 设置并打开Steam VR 286
15.2.3 运行SteamVR的测试场景 289
15.2.4 TPCast无线模块 289
15.2.5 Vive追踪器简介 290
15.3 实战:开发跨平台VR联网对战塔防游戏 291
15.3.1 对战塔防游戏策划 291
15.3.2 创建项目并进行基本设置 292
15.3.3 新建塔防场景 292
15.3.4 实现敌人的自动寻路功能 294
15.3.5 添加其他游戏逻辑组件 297
15.3.6 使用手柄控制游戏的开始 302
15.3.7 使用手柄在游戏中进行传送 305
15.3.8 使用手柄与场景中的物体互动 307
15.3.9 给玩家装配武器 309
15.3.10 实现游戏的联网功能 310
15.3.11 修复游戏中的小问题 319
15.3.12 适配到Oculus平台 320
15.3.13 添加背景音乐和音效 322
15.4 将产品上传到Viveport和Steam平台 322
15.5 本章小结 325
第16章 实战:在Google Daydream平台开发VR游戏 326
16.1 Google Daydream VR平台开发概述 326
16.1.1 Google Daydream VR设备及平台简介 327
16.1.2 Google Daydream VR中的交互 327
16.2 实战:开发VSpaceCraft游戏 328
16.2.1 《VSpaceCraft》的产品策划 328
16.2.2 配置Google Daydream VR的开发测试环境 328
16.2.3 创建新的Daydream项目 332
16.2.4 游戏基本结构的设计和实现 334
16.2.5 游戏场景的搭建和设置 338
16.2.6 将游戏适配到Daydream VR平台 340
16.2.7 隐藏控制器模型 345
16.3 将产品发布到Google Play VR和Daydream 347
16.3.1 Google Play VR和Daydream介绍 347
16.3.2 VR应用发布 347
16.4 本章小结 348
第17章 实战:使用Unity和Vuforia开发AR小游戏 349
17.1 Vuforia SDK简介 349
17.2 实战:开发AR小游戏PocketCat 352
17.2.1 PocketCat游戏简介 352
17.2.2 配置开发测试环境 352
17.2.3 开发前的准备工作 354
17.2.4 利用Image Target实现图像识别 356
17.2.5 在iOS设备上编译运行 362
17.2.6 实现用户自定义的Image Target 365
17.2.7 添加控制角色的虚拟joystick 370
17.2.8 将项目在Android设备上编译 373
17.2.9 将游戏发布到AppStore和Android应用商城 374
17.3 本章小结 374
第18章 实战:使用Unity和Wikitude开发AR应用 375
18.1 Wikitude SDK简介 375
18.2 实战:开发AR游戏iGirl 378
18.2.1 iGirl游戏简介 378
18.2.2 下载Wikitude SDK 379
18.2.3 获取Wikitude的License 380
18.2.4 创建新项目并导入Wikitude SDK 381
18.2.5 了解Instant Tracking的运作机制 381
18.2.6 添加自己的3D模型并设置项目 383
18.2.7 设置iGirl的预设体 383
18.2.8 完成其他设置 386
18.2.9 将AR应用编译运行和发布 386
18.3 实战:开发一个简单的《口袋动物园》应用 388
18.3.1 《口袋动物园》的游戏策划 389
18.3.2 配置开发测试环境 389
18.3.3 创建ImageTracker 391
18.3.4 添加模型 392
18.3.5 使用EasyTouch插件实现手势交互 393
18.4 本章小结 396
第19章 实战:在HoloLens平台开发游戏 397
19.1 HoloLens平台开发概述 397
19.2 实战:开发HoloSpace游戏 400
19.2.1 HoloSpace产品策划 400
19.2.2 配置HoloLens的开发测试环境 401
19.2.3 设置并运行HoloLens的测试场景 404
19.2.4 在Unity中导入所需的项目资源 408
19.2.5 模拟火箭升空的效果 408
19.2.6 将火箭部署到HoloLens世界中 413
19.2.7 调整火箭的初始位置 414
19.2.8 丰富对火箭操作的交互 417
19.2.9 游戏的UI设计和开发 418
19.2.10 添加背景音乐和音效 419
19.3 将产品发布到Windows Store平台 420
19.4 本章小结 423
第20章 实战:使用苹果ARKit和Unity开发AR应用 424
20.1 苹果ARKit简介 424
20.2 使用Unity ARKit开发iGuitarHero 426
20.2.1 iGuitarHero小游戏的策划 426
20.2.2 开发前的准备工作 427
20.2.3 Unity ARKit插件简介 427
20.2.4 创建项目并导入ARKit插件 428
20.2.5 运行ARKit插件的示例场景 429
20.2.6 在Unity中测试4DViews插件的使用 432
20.2.7 创建真正的游戏场景 435
20.2.8 添加游戏背景音乐 439
20.3 本章小结 440

教学资源推荐
作者: [美] 约翰·戴维·斯通(John David Stone) 著
作者: Keith D.Cooper, Linda Torczon
作者: 施霞萍 张欢欢 王瑾德 马可幸 编著
参考读物推荐
作者: David Flanagan
作者: 林树泽 
作者: 李鹏等