Unity AR开发插件:制作热更数据-AR图片识别场景
创作时间:
作者:
@小白创作中心
Unity AR开发插件:制作热更数据-AR图片识别场景
引用
CSDN
1.
https://blog.csdn.net/qq_41140324/article/details/139086869
本教程将详细介绍如何使用Unity开发AR应用,特别是通过热更新技术实现AR场景的动态加载。文章将介绍插件简介、资源下载、热更数据制作流程以及AR图片识别场景的具体实现步骤。
插件简介
通过热更技术实现动态地加载AR场景,简化了AR开发流程,让用户可更多地关注Unity场景内容的制作。“EnvInstaller…”支持HybridCLR和ARCore的一键安装。“AR SDK…”基于HybridCLR和ARFoundation实现,使热更技术贯穿AR开发的全流程。包含热更数据制作与导出、热更数据上传与下载、热更数据的版本控制与数据加载。
资源下载
“EnvInstaller”:点击下载
“AR SDK”:点击下载
制作热更数据-AR图片识别场景
在前面的《使用插件一键安装》已介绍如何使用插件导入ARFoundation(ARCore)和HybridCLR的相关Package,这里仅介绍必须修改的设置。
导入AR SDK
- 通过“Assets -> Import Package -> Custom Package…”的方式导入 “AR SDK_v1.0.1.x.unitypackage”。导入成功后,菜单栏出现“Holo-XR”栏目。
- 点击“Holo-XR > Settings”,打开设置窗口。
- (必需)勾选“热更新”启用SDK中涉及HybridCLR的脚本。
- (必需)勾选“ARCore”,启用ARFoundation。(此处由于通过EnvInstaller安装的是ARCore,因此这里选用ARCore。目前也支持启用其它平台,将在后续文档中讲述。)
- (可选)勾选“调试模式”和“打印日志”(勾选后,使用“EqLog.log(…)”)
使用ARFoundation
- 导入 “AR Foundation”和“ARCore Extensions for AR Foundation ”。建议使用《使用插件一键安装》介绍的插件一键导入 ARCore的所有依赖。此外,也可参考官方文档《AR Foundation 使用入门》按照步骤逐步导入。
- 转到 File > Build Settings 以打开 Build Settings 窗口,点击 Player Settings,修改3处地方。
Player Settings > … 值
Other Settings > Rendering 取消选中Auto Graphics API。 如果Vulkan列在Graphics APIs下,请将其移除,因为 ARCore 尚不支持 Vulkan。
Other Settings > Minimum API Level 这里要构建AR 必备应用,请指定Android 7.0 ‘Nougat’ (API Level 24) or higher
Other Settings > Scripting Backend 选择IL2CPP(而非Mono),Level切换为.NET Framework(而非.Net Standard 2.x)。(注意:Unity 2020及其以下版本,切换为.NET 4.x)
示意图如下:
- 转到 Edit > Project Settings 以打开 Project Settings 窗口,点击XR Plug-in Management,启用ARCore。
- 转到ARCore,修改为深度可选的AR必备应用。
制作数据
示例:实现识别不同图片加载不同的模型
添加组件
在“ARCore Session”对象上添加组件“ARCoreImageDetect”,如下图所示。在“ARCoreImageDetect”中的“Images”下所添加的就是用于识别的图像和识别到图像后加载的Prefab在“ARCoreImageDetect”中的“DetectCallback”即是事件回调(见下节描述)。
事件回调
有时我们需要监听什么时候识别到图片,什么时候图片失去跟踪状态等信息。可通过重写"DetectCallback"类
public class DetectCallback : MonoBehaviour
{
public virtual void OnAdded(ARImageInfo image) { }
public virtual void OnUpdate(ARImageInfo image) { }
public virtual void OnRemoved(ARImageInfo image) { }
}
示例如下:
public override void OnUpdate(ARImageInfo image)
{
EqLog.i("DetectMethod", "image.name:" + image.name
+ ";image.position:" + image.transform.position);
}
public override void OnAdded(ARImageInfo image)
{
EqLog.i("DetectMethod", "image.name:" + image.name
+ ";image.position:" + image.transform.position);
AndroidUtils.Toast("image.name:" + image.name
+ ";image.position:" + image.transform.position);
}
public void LoadCompleted()
{
AndroidUtils.Toast("图片数据库加载完成");
}
场景导出
- 执行菜单栏“Holo-XR”->“BuildBundle-Android”,指定入口场景后,点击”导出“
- 场景打包的结果为zip包和version文件
至此热更数据已制作完成,后续将介绍如何在程序中调用热更数据。
热门推荐
中国为何大力进口铁矿石?
中国工业软件行业竞争格局分析:市场集中度低,龙头企业崭露头角
如何给研究团队取个名称
怎样开淘宝店铺?怎么把流量做起来?只有不断学习和实践才能成功!
无线充电工作温度发热多少度算正常?
做趋势用什么指标?这些指标在实际操作中的应用效果如何?
《X4:基石》HQ任务完全攻略:开启你的太空帝国之路!
六道轮回图详解:跳出轮回的关键,在于如何挣脱十二因缘的锁链!
孩子太害羞怎麼辦?內向的孩子怎麼教?培養孩子自信的正向教養方法
如何有效去除牙烟渍
崩坏:星穹铁道【V3.0攻略】「银狼」全方位·一图流丨角色解析攻略
隋炀帝修建大运河:一个被误解的"昏君"决策
秦始皇之子将闾:悲剧命运与历史回响
呼吸科常用药物「利巴韦林」:滥用风险与使用指南
创业者必读:12种品牌声音类型及经典案例解析
如何理解公司年报对股价的影响
港媒:中国已经超越西方成为非洲留学生第一选择,有助于中非未来
日本自卫队之简述
健身增肌,并不一定都要追求「力竭」
2025年高性价比旅行目的地:六大城市深度体验攻略
虚拟化园区网络设计:IPv6在企业网络中的角色与部署策略
手机分期付款是怎么分期的?介绍5000元手机分期流程和还款利息
辣椒种植妙招:5种草木灰使用方法,助力高产优质
数据库系统中的模式(Schema)设计与三级模式结构详解
特斯拉一个月内10位高管离职,马斯克集权回归汽车业务
三国北伐失败的原因探究
激光治疗眼睛的方法有哪些?如何选择适合的激光眼科治疗技术?
中年人如何增强记忆力的九种方法
舌头有白苔怎么办?医生的专业建议来了
迎新春,来看展!唐山博物馆两大新展同时开幕