新書推薦:
《
战胜人格障碍
》
售價:HK$
66.7
《
逃不开的科技创新战争
》
售價:HK$
103.3
《
漫画三国一百年
》
售價:HK$
55.2
《
希腊文明3000年(古希腊的科学精神,成就了现代科学之源)
》
售價:HK$
82.8
《
粤行丛录(岭南史料笔记丛刊)
》
售價:HK$
80.2
《
岁月待人归:徐悲鸿自述人生艺术
》
售價:HK$
61.4
《
女人的中国医疗史:汉唐之间的健康照顾与性别
》
售價:HK$
103.8
《
资治通鉴熊逸版:第四辑
》
售價:HK$
470.8
|
編輯推薦: |
Unity3D是一款跨平台3D、2D游戏及互动内容开发引擎,有着广泛的影响力。随着近年增强现实和虚拟现实技术的兴起,很多AR与VR的技术提供方都提供了基于Unity3D的SDK包。本书针对没有Unity3D编程经验的ARVR初学者,详细讲解Unity3D开发增强现实和虚拟现实的方法,使读者能够快速使用Unity3D平台开发AR与VR应用。
|
內容簡介: |
Unity3D是一款跨平台3D、2D游戏及互动内容开发引擎,并有着广泛的影响力。随着近年增强现实和虚拟现实的兴起,很多增强现实和虚拟现实的技术提供方都提供了基于Unity3D的SDK包。本书讲解Unity平台AR与VR开发,通过本书读者可以快速了解增强现实和虚拟现实的基本概念、应用实例,学习相关SDK的使用,并且参照例子上手制作出自己的ARVR作品。 本书共分为18章,详细讲解Unity的安装和使用、AR(增强现实)背景、EasyAR开发AR及实例、Vuforia开发AR及实例、ARCore开发AR及实例、Mapbox与ARCore的配合使用及实例、VR(虚拟现实)背景、Google VR开发VR及实例、VRTK开发VR及实例等内容,使读者掌握Unity3D制作ARVR产品的方法,快速进入ARVR应用开发之门。 本书适合使用Unity3D平台开发ARVR游戏和应用的移动开发人员,也适合高等院校和培训机构移动游戏开发课程的师生教学参考。
|
關於作者: |
吴雁涛,2000年西北工业大学材料科学与工程专业毕业,同年开始从事计算机相关工作,技术方向包括Web应用、Web前端、Unity3D开发等。著有图书《Unity3D平台AR与VR开发快速上手》。
|
目錄:
|
第1章 Unity的基本介绍 1
1.1 功能特点 1
1.1.1 Unity简介 1
1.1.2 Unity的特点 1
1.2 版本及费用 2
1.3 下载和安装 3
1.3.1 Unity版本的选择和Unity Hub 3
1.3.2 下载 3
1.3.3 Unity Hub安装和许可证激活 4
1.3.4 用Unity Hub安装Unity 7
1.4 Unity官方提供的学习资源 10
1.4.1 Unity Hub的链接资源 10
1.4.2 官方网站上的资源 11
1.4.3 Unity商城 12
第2章 Unity的世界和编辑器主要界面介绍 13
2.1 理解Unity的世界 13
2.1.1 虚拟的三维世界 13
2.1.2 必须存在的转换 14
2.1.3 层级的结构 14
2.1.4 组件决定游戏对象 14
2.1.5 场景和摄像机 14
2.2 理解Unity项目的结构 15
2.3 关于翻译 16
2.4 启动界面 17
2.4.1 新建项目 17
2.4.2 添加已有项目 18
2.4.3 打开项目 18
2.4.4 版本变更 19
2.5 默认界面 20
2.6 场景窗口 21
2.6.1 基本操作 21
2.6.2 变形工具 22
2.6.3 其他辅助工具 24
2.7 Game窗口 25
2.8 Hierarchy窗口 26
2.9 Inspector窗口 27
2.10 Project窗口 30
2.11 Console窗口 32
第3章 Unity快速入门 33
3.1 场景 33
3.2 游戏对象 35
3.3 摄像机游戏对象 36
3.4 组件 39
3.5 预制件 40
3.6 其他常用内容 41
3.6.1 3D模型 41
3.6.2 刚体 42
3.6.3 重力 43
3.6.4 物理特性 44
3.6.5 穿透 45
3.6.6 粒子系统 45
3.6.7 声音播放 46
3.6.8 视频播放 47
3.7 Unity GUI 48
3.7.1 渲染模式 48
3.7.2 矩阵变换(Rect Transform) 50
3.7.3 响应脚本 52
3.8 脚本 54
3.8.1 基本介绍 54
3.8.2 MonoBehaviour 55
3.8.3 Transform属性 56
3.8.4 GameObject 58
3.8.5 常用事件 58
3.8.6 Instantiate 59
3.8.7 Destroy 60
3.8.8 获取指定游戏对象 61
3.8.9 获取指定的组件 62
3.8.10 协程 63
3.8.11 场景切换 63
3.8.12 DontDestroyOnLoad 64
3.8.13 SendMessage 64
3.9 资源包的导入和导出 66
3.9.1 导入资源包 66
3.9.2 导出资源包 66
3.10 生成应用 67
3.10.1 生成Windows应用 68
3.10.2 生成Android应用 70
3.10.3 发布iOS应用 74
3.11 Unity商城资源下载和导入 76
3.12 Unity程序设计新手建议 79
第4章 增强现实介绍 81
4.1 基本概念 81
4.2 支持平台 81
4.3 实现方式 81
4.4 典型案例 83
4.5 常用增强现实SDK 88
4.6 现状和前景 89
第5章 基于EasyAR SDK的增强现实的开发 90
5.1 EasyAR简介 90
5.1.1 基本介绍 90
5.1.2 版本和功能 90
5.1.3 支持平台 91
5.1.4 官方演示例子 91
5.2 获取Key 91
5.3 下载导入开发包 93
5.4 EasyAR SDK概述 94
5.4.1 总体结构 94
5.4.2 EasyAR_Tracker(EasyAR追踪器) 96
5.4.3 CameraDevice(摄像设备) 97
5.4.4 ARCamera(Unity摄像机) 97
5.4.5 EasyAR SDK中类的使用 98
5.4.6 图片识别度检测 98
5.5 识别图片显示3D模型 98
5.5.1 最基础的例子识别一个图片显示3D模型 98
5.5.2 图片识别的两个关键类 100
5.5.3 从多张图片中只识别出一张图片 103
5.5.4 从多张图片中同时识别出多张图片 107
5.6 识别图片播放视频 109
5.6.1 在平面上播放视频 109
5.6.2 视频播放的关键类 115
5.6.3 在3D物体上播放视频 116
5.6.4 播放透明视频 117
5.7 识别物体 118
5.8 相关的程序控制 122
5.8.1 图片识别后的控制 122
5.8.2 通过程序控制图片识别 126
5.8.3 物体识别后的控制 128
5.8.4 视频播放控制 131
5.9 涂涂乐 135
5.10 脱卡 140
第6章 EasyAR SDK示例开发 145
6.1 主要思路 145
6.2 示例设计 145
6.2.1 添加基本内容 145
6.2.2 演示的功能设计 146
6.2.3 Unity3D场景设计 148
6.2.4 界面设计 150
6.3 准备工作 151
6.4 新建项目 155
6.5 启动加载场景开发 155
6.5.1 设置场景 156
6.5.2 脚本编写 159
6.6 主菜单场景开发 161
6.6.1 设置场景 161
6.6.2 脚本编写 163
6.7 关于场景开发 165
6.8 返回功能开发 165
6.8.1 设置场景 165
6.8.2 脚本编写 166
6.8.3 其他场景的设置 168
6.9 识别单图场景开发 169
6.9.1 准备工作 169
6.9.2 场景基础设置 169
6.9.3 识别图片显示文字 170
6.9.4 识别图片显示UI 171
6.9.5 识别图片跳转URL 173
6.9.6 识别图片显示3D模型 174
6.10 识别多图场景开发 175
6.10.1 场景互动基本思路 175
6.10.2 用有限状态机的理念重新整理思路 177
6.10.3 场景基础设置 179
6.10.4 3D模型动作关系修改 181
6.10.5 3D模型添加碰撞 185
6.10.6 Yuko相关逻辑的编写 188
6.10.7 UTC相关逻辑的编写 191
6.10.8 Misaki相关逻辑编写 198
6.10.9 清理警告和错误提示 202
6.11 物体识别用的模型准备 203
6.11.1 寻找合适的模型 203
6.11.2 模型修改 205
6.11.3 模型导出和转换 206
6.11.4 纸模转换制作 209
6.11.5 模型制作 212
6.12 物体识别场景开发 213
6.12.1 设置场景 213
6.12.2 脚本编写 215
6.13 视频播放场景开发 217
6.13.1 设置场景 217
6.13.2 脚本编写 219
6.14 控制识别对象场景开发 221
6.14.1 设置场景 221
6.14.2 脚本编写 222
6.15 涂涂乐场景开发 224
6.15.1 涂涂乐内容的准备 224
6.15.2 设置场景 226
6.16 脱卡场景开发 229
6.16.1 设置场景 229
6.16.2 脚本编写 232
6.17 打包 235
第7章 基于Vuforia Engine的增强现实的开发 238
7.1 Vuforia Engine简介 238
7.2 Vuforia概述 239
7.3 获取Key 240
7.4 导入开发包 242
7.5 导入Key和VuforiaConfiguration 246
7.5.1 导入Key 246
7.5.2 VuforiaConfiguration 247
7.6 添加和导入Database 248
7.6.1 添加Database 248
7.6.2 添加图片识别对象 249
7.6.3 添加方块识别对象 251
7.6.4 添加柱体识别对象 252
7.6.5 添加物体识别对象 253
7.6.6 下载Database 256
7.6.7 导入Database 257
7.7 识别图片显示模型 258
7.7.1 识别显示单个图片 258
7.7.2 识别显示的多张图片 262
7.8 识别图片播放视频 262
7.8.1 官方示例说明 262
7.8.2 借用官方例子的方法实现视频播放 263
7.9 识别方块显示模型 266
7.10 识别柱体显示模型 268
7.11 识别物体显示模型 269
7.12 模型数据获取及识别模型 272
7.12.1 模型数据的获取 272
7.12.2 识别模型 277
7.13 环境认知 280
7.13.1 Ground Plane 281
7.13.2 Mid Air 282
7.14 程序控制 284
7.14.1 识别后的控制 284
7.14.2 虚拟按钮及程序控制 290
第8章 用Vuforia做一个AR解谜小游戏 294
8.1 起因 294
8.2 思路整理 294
8.3 准备工作 296
8.3.1 拼图可行性测试 296
8.3.2 图片准备 297
8.3.3 文字和音频内容准备 298
8.3.4 其他内容准备 299
8.4 程序设计 300
8.4.1 添加基本内容 300
8.4.2 场景设计 301
8.4.3 主场景关键流程设计 302
8.5 项目搭建 303
8.6 启动场景开发 308
8.6.1 设置场景 308
8.6.2 脚本编写 311
8.7 添加系统变量 313
8.8 菜单场景开发 314
8.8.1 设置场景 314
8.8.2 脚本编写 315
8.9 主场景开发 318
8.9.1 设置场景 318
8.9.2 识别后事件脚本的编写 319
8.9.3 添加音频播放功能的编写 322
8.9.4 添加文字显示功能 324
8.9.5 根据识别图片获取信息并处理 326
8.9.6 按钮解锁功能的编写 328
8.9.7 虚拟按钮解锁功能的编写 339
8.9.8 初始提问的编写 345
8.9.9 回答阶段的编写 355
8.9.10 添加修改解谜类型随机的方法 358
8.10 发布 360
8.11 后记 362
第9章 基于ARCore的增强现实开发 363
9.1 ARCore简介 363
9.2 环境准备 364
9.2.1 SDK下载和导入 364
9.2.2 相关设置 365
9.3 ARCore基本结构 367
9.4 SessionConfig的配置 368
9.5 在平面上放置模型 369
9.6 光照评估 373
9.7 图片识别 375
第10章 ARCore的例子 380
10.1 说明 380
10.2 场景搭建 380
10.3 菜单场景 382
10.4 异常判断和返回菜单功能 386
10.5 空中画线 388
10.5.1 设置场景 388
10.5.2 记录运动轨迹的组件 390
10.5.3 脚本的编写 392
10.5.4 脚本及按钮设置 394
10.6 运动轨迹的显示 396
10.6.1 添加ARCore Device 396
10.6.2 添加第二个Camera并设置 396
10.6.3 添加记录轨迹的线 399
10.6.4 场景中其他内容的设置 401
10.6.5 编写脚本 403
10.6.6 脚本设置 403
10.7 传送门 405
10.7.1 导入透明材质 405
10.7.2 建立隐身房间预制件 406
10.7.3 设置场景 412
10.8 发布 414
第11章 基于ARCore的室内导航 416
11.1 室内导航简介 416
11.2 Unity NavMeshComponents简介 417
11.3 程序设计 418
11.3.1 添加基本内容 418
11.3.2 功能和场景设计 419
11.4 图片识别内容开发 422
11.4.1 准备工作 422
11.4.2 图片识别功能场景的设置 426
11.4.3 ARCore错误提示功能脚本的开发 434
11.4.4 图片识别功能脚本的开发 435
11.5 Debug模式开发 437
11.6 对应实际场景内容搭建和矫正 449
11.7 导航内容的开发 452
11.7.1 新建场景并复制导航内容 452
11.7.2 设置场景导航内容 452
11.7.3 导航脚本的开发 455
11.8 添加墙壁 459
11.9 添加显示的模型和菜单 460
11.10 添加Debug按钮 464
第12章 Mapbox的简单使用 467
12.1 Mapbox简介 467
12.2 获取token 467
12.3 下载导入开发包 468
12.4 Mapbox总体结构 470
12.5 Mapbox Studio 471
12.5.1 Dataset 472
12.5.2 Tileset 480
12.5.3 Style 481
12.6 Mapbox显示地图 487
12.6.1 General项目配置 488
12.6.2 Image项目配置 491
12.6.3 Map Layers数据配置 492
12.6.4 动态生成多边形区域内容 493
12.6.5 动态生成线内容 496
12.6.6 动态生成点内容 497
12.6.7 动态生成内容的修改 498
12.7 Mapbox当前位置定位 501
第13章 用Mapbox和ARCore做Pokemon Go 503
13.1 主要思路 503
13.2 CinemaChine介绍 503
13.2.1 CinemaChine的导入 503
13.2.2 CinemaChine基本结构 504
13.2.3 官方提供的Camera 507
13.3 示例设计 511
13.3.1 基本内容设计 511
13.3.2 场景设计 511
13.3.3 界面设计 512
13.4 准备工作 513
13.5 新建项目 514
13.6 单实例类基础内容开发 515
13.7 启动场景开发 516
13.7.1 设置场景 516
13.7.2 脚本编写 520
13.8 ARCore测试场景开发 522
13.8.1 导入并设置相关SDK 522
13.8.2 设置场景 524
13.8.3 脚本编写 525
13.9 设置场景开发 526
13.9.1 文本滚动条预制件的制作 526
13.9.2 选择按钮预制件的制作 530
13.9.3 设置场景 533
13.9.4 脚本编写 536
13.10 地图寻找场景开发 541
13.10.1 导入模型和摄像机插件 542
13.10.2 3D模型动作关系修改 543
13.10.3 设置场景 547
13.10.4 玩家动作和镜头切换 552
13.10.5 捕捉的宠物制作 554
13.10.6 玩家控制脚本的编写 555
13.10.7 宠物控制脚本的编写 556
13.10.8 设置预置宠物 560
13.10.9 编写随机宠物初始化脚本 563
13.10.10 编写宠物单击处理 566
13.11 普通捕捉场景开发 567
13.11.1 添加陀螺仪控制Camera旋转 567
13.11.2 添加显示摄像头内容 569
13.11.3 双摄像头显示设置 571
13.11.4 添加抓捕特效 573
13.11.5 宠物生成和抓捕脚本的编写 574
13.12 ARCore捕捉场景开发 578
13.12.1 场景设置 578
13.12.2 脚本编写 579
13.13 打包 581
第14章 虚拟现实简介 583
14.1 虚拟现实基本概念 583
14.2 VR设备总体介绍 583
14.3 Google Cardboard 584
14.4 HTC Vive、PSVR、Oculus Rift 584
14.5 VR应用介绍 585
14.6 VR开发常见的问题 586
第15章 基于Google VR SDK针对Cardboard的虚拟现实的开发 588
15.1 Google VR简介 588
15.2 下载导入开发包 588
15.3 Google VR SDK概述 590
15.4 制作一个VR场景 592
15.4.1 设置场景 592
15.4.2 添加DOTween插件 597
15.4.3 添加注视计时单击功能 599
15.4.4 添加移动脚本 600
15.4.5 添加退出脚本 601
第16章 基于VRTK的虚拟现实的开发 602
16.1 VRTK简介 602
16.2 下载导入开发包 603
16.3 VRTK基本结构 603
16.3.1 VRTK基本结构概述 603
16.3.2 VRTK基本结构搭建 604
16.3.3 VRTK模拟器的操作 608
16.4 手柄按键事件响应 609
16.5 手柄射线 612
16.6 传送 617
16.7 与物体交互 621
16.8 UI操作 630
第17章 Unity访问API 632
17.1 UnityWebRequest简介 632
17.2 聚合数据的免费天气 632
17.3 获取天气信息 634
17.4 JSON的处理 639
第18章 其他Unity3D相关的内容 645
18.1 单一数据存储 645
18.2 少量初始数据的存储 646
18.2.1 将数据存储在预制件里 646
18.2.2 利用ScriptableObject将数据存储为资源 647
18.3 用iTween插件进行移动、缩放、旋转操作 649
18.3.1 下载并导入插件 649
18.3.2 iTween的基本调用 650
18.3.3 常见参数 650
18.3.4 iTween实现移动 651
18.3.5 iTween实现旋转 652
18.3.6 iTween的变化值 652
18.3.7 iTween Visual Editor导入 654
18.3.8 iTween Visual Editor控制变化 655
18.3.9 iTween Visual Editor指定运动路径 656
18.4 插件推荐 659
|
內容試閱:
|
Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型开发工具,是一个全面整合的专业游戏引擎。因其良好的生态及广泛的支持,使其在增强现实(AR)和虚拟现实(VR)开发上也获得了众多厂商的青睐。很多增强现实和虚拟现实的技术提供商都提供了基于Unity3D的SDK包。
本书面向的读者是没有接触过Unity3D的游戏开发初学者。读者可以通过该书快速地了解Unity3D、增强现实以及虚拟现实的基本概念和一些实例,并且快速地参照例子制作出自己的ARVR作品。
本书内容介绍
第1~3章介绍Unity3D基础,内容包括Unity3D的基础知识、操作界面、基本概念等,让读者对Unity3D有一个总体的了解,并能进行一些基本操作、代码编写。
第4~13章介绍增强现实开发,内容包括增强现实的基本概念、一些优秀的实例。详细讲解如何使用Unity3D和EasyAR、Vufoira、ARCore三款增强现实SDK开发图片识别、物体识别、环境认知等相关的增强现实内容。其中每个SDK介绍完以后都有一个具体的例子,让读者可以了解如何思考并着手使用Unity3D进行相关内容的开发。此外,还将详细讲解用Unity3D和Mapbox开发地理信息定位的增强现实内容,并提供了一个Pokemon Go的例子。
第14~16章介绍虚拟现实开发,包括虚拟现实的基本概念,以及如何使用Unity3D和Google VR、VRTK两款虚拟现实SDK开发响应式虚拟现实内容。
第17~18章介绍其他Unity3D相关的内容,包括Unity3D访问Web API和其他常用的一些技术。
资源下载与技术支持
本书配套的源代码和资源请扫描右边二维码获得。本书阅读过程中,如有疑问或者建议,可以发邮件至booksaga@163.com,邮件主题为2018 AR与VR开发。
关于作者
吴雁涛,2000年西北工业大学材料科学与工程专业毕业,同年开始从事计算机相关工作,技术方向包括Web应用、Web前端、Unity3D开发等,著有图书《Unity3D平台AR与VR开发快速上手》。
吴雁涛
2020年5月
|
|