使用 ARFoundation 轻松介绍 AR
感谢您的辛勤工作。
我是横滨办事处开发室的松山。
我决定测试 AR,因为我认为这可能会带来一些工作。
我想在我的博客上留下备忘录。
提前准备
■ 工具和插件
首先,准备环境。
我认为用 Unity 测试它会很快。
・统一2019.3.0b11
虽然是测试版,但在最新的Fix版本(2019.2.13f1)中AR相机无法正常显示,所以我会使用2019.3。
Unity Hub 确实很有用。
*当我写这篇博客时,2019.3修复版本(2019.3.0f1)发布了。
AR相机在此版本中运行良好。
・AR 插件
・AR Foundation (2.1.4)
・ARKit XR 插件 (2.1.2) *适用于 iOS
创建新项目后,从包管理器导入它。
顺便说一下,之前已有的UnityARKit Plugin已经不再可用,看来AR开发将由AR基金会来完成。
这次我们只检查iOS上的操作,所以我们只导入ARKit。如果Android也兼容,也导入ARCore。
包管理器也非常有用。
■ 项目设置(iOS)
- 公司名称、产品名称、BuildIdentifier 可选
- 自动签名在首选项中设置很方便
- 由于使用了相机,因此在相机使用说明中输入适当的描述
- 勾选需要 ARKit 支持
- iOS 版本 11 或需要更高版本,因此将“11.0”设置为最低 iOS 版本
- 架构为“ARM64”
■ 构建设置
由于我们在iOS 上运行,
- 选择iOS 作为平台
- 将Xcode 中的运行更改为“调试”
- 检查开发构建
并运行切换平台。
*什么是 AR Foundation?
・ARKit 适用于 iOS
・ARCore 适用于 Android
・AR Foundation 是一个多平台 AR 实用程序,兼容两种操作系统
将 AR 功能添加到您的场景中
创建一个合适的场景(默认场景也可以)
- 将使用 AR 相机代替 MainCamera,因此删除 MainCamera
- 将以下对象添加到 Hierarchy 作为 AR 功能
- AR Session Origin
- AR Session
就是这么简单。
以图形方式显示平面
进行设置以像这样用黑框和半透明板显示检测到的平面。
1. 生成一个 Plane 以显示为平面(XR → AR 默认平面)
2. 将生成的 Plane 转换为 Prefab 并将其从 Hierarchy 中删除
3. 将“AR Plane Manager”组件添加到 AR Session Origin 以显示检测到的4.
在组件的 AR Plane Manager 的“Plane Prefab”中设置第 2 步中的 Prefab。
5. 如果只需要水平面,请将“Detection Mode”设置为 Horizontal。
将物体放置在 AR 空间中
触摸检测到的平面即可在其中显示对象。
・将“AR Raycast Manager”添加到 AR Session Origin 以检测触摸坐标
・创建代码以在触摸坐标处生成对象
使用 System.Collections;使用 UnityEngine.XR.ARFoundation;使用 UnityEngine.XR.ARSubsystems;<ARRaycastHit> hitResults = 新列表<ARRaycastHit>(); void Awake() { raycastMan = GetComponent<ARRaycastManager> (); } void Update() { if (Input.touchCount > 0) { Touch touch = Input.GetTouch(0); if (touch.phase != TouchPhase.Ended) { return } if (raycastMan.Raycast (touch) .position, hitResults, TrackableType.All)) { 实例化 (objPrefab, hitResults[0].pose.position, hitResults[0].pose.rotation); } } } }
・将 Component 添加到 AR Session Origin 创建的代码(类)中
・在 ObjPrefab 中注册要显示的对象
你想要显示的对象
立方体或球体都可以,但我会不厌其烦地从资源商店中找到合适的模型。
我将范围缩小到 3D、免费资产,并决定使用“太空机器人凯尔”。
导入、创建Avatar、让它动起来,并调整它,使其能够播放“UnityChan”的动作。
由于这是一个业余爱好级别,我将省略细节。
与实际机器检查
让我们构建它并在实际机器上检查它。
・打开 Build Settings 并运行 Build
・启动生成的 Xcode 项目
・连接要安装的终端并在 Xcode 上选择
・按 ▶︎ 构建并运行
执行时,会在触摸的位置生成一个对象,如下所示。
*为了保护隐私,我在脸上打了马赛克,但看起来有点可疑。 。 。
总结性的东西
安装非常简单。
只需这些步骤,您就可以实现“DQ Walk”的“Monster AR”之类的东西。
起初,我被Unity版本卡住了(2019.2系列中没有显示AR相机),但
除此之外我不认为有什么大问题。
如果硬推的话,
无法在Unity Editor中查看操作,所以每次都要build,很麻烦。
下次,我会尝试验证 GPS 和 Google 地图之间的链接!
最后
我开设了我所属的系统开发服务网站“SEKARAKU Lab”。
Beyond是从服务器设计搭建到运营的一站式服务,所以如果您在服务器端开发方面遇到任何问题,请随时联系我们。
SEKARAKU 实验室: [https://sekarakulab.beyondjapan.com/](https://sekarakulab.beyondjapan.com/)
好了,现在就这些了。