[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

使用 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”设置为 Horizo​​ntal。

将物体放置在 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/)

好了,现在就这些了。

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
3,090
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者

松山贤章

他长期在一家游戏开发公司工作,从事程序和项目管理工作。
2019年加入超越株式会社。
在横滨办事处工作。 主要负责服务器端开发工作的项目管理。
(有时编程)我的爱好是骑自行车(公路赛车)和观看赛马。