本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
图书基本信息 | |
图书名称 | Unity 2018 AR与VR开发快速上手 |
作者 | 吴雁涛 |
定价 | 129元 |
出版社 | 清华大学出版社 |
ISBN | 9787302558804 |
出版日期 | 2020-08-01 |
字数 | |
页码 | |
版次 | |
装帧 | 平装 |
开本 | 16开 |
商品重量 |
内容提要 | |
Unity3D是一款跨平台3D、2D游戏及互动内容开发引擎,并有着广泛的影响力。随着近年增强现实和虚拟现实的兴起,很多增强现实和虚拟现实的技术提供方都提供了基于Unity3D的SDK包。本书讲解Unity平台AR与VR开发,通过本书读者可以快速了解增强现实和虚拟现实的基本概念、应用实例,学习相关SDK的使用,并且参照例子上手制作出自己的AR/VR作品。 本书共分为18章,详细讲解Unity的安装和使用、AR(增强现实)背景、EasyAR开发AR及实例、Vuforia开发AR及实例、ARCore开发AR及实例、Mapbox与ARCore的配合使用及实例、VR(虚拟现实)背景、Google VR开发VR及实例、VRTK开发VR及实例等内容,使读者掌握Unity3D制作AR/VR产品的方法,快速进入AR/VR应用开发之门。 本书适合使用Unity3D平台开发AR/VR游戏和应用的移动开发人员,也适合高等院校和培训机构移动游戏开发课程的师生教学参考。 |
目录 | |
章 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 0章 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 1章 基于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 2章 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 3章 用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 4章 虚拟现实简介 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 5章 基于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 6章 基于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 7章 Unity访问API 632 17.1 UnityWebRequest简介 632 17.2 聚合数据的免费天气 632 17.3 获取天气信息 634 17.4 JSON的处理 639 8章 其他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 |
作者介绍 | |
吴雁涛,2000年西北工业大学材料科学与工程专业毕业,同年开始从事计算机相关工作,技术方向包括Web应用、Web前端、Unity3D开发等。著有图书《Unity3D平台AR与VR开发快速上手》。 |
编辑推荐 | |
Unity3D是一款跨平台3D、2D游戏及互动内容开发引擎,有着广泛的影响力。随着近年增强现实和虚拟现实技术的兴起,很多AR与VR的技术提供方都提供了基于Unity3D的SDK包。本书针对没有Unity3D编程经验的AR/VR初学者,详细讲解Unity3D开发增强现实和虚拟现实的方法,使读者能够快速使用Unity3D平台开发AR与VR应用。 |