当前位置: 首页 > news >正文

【Unity AR开发插件】四、制作热更数据-AR图片识别场景

专栏

本专栏将介绍如何使用这个支持热更的AR开发插件,快速地开发AR应用。

链接: Unity开发AR系列

插件简介

通过热更技术实现动态地加载AR场景,简化了AR开发流程,让用户可更多地关注Unity场景内容的制作。

“EnvInstaller…”支持HybridCLR和ARCore的一键安装。

“AR SDK…”基于HybridCLR和ARFoundation实现,使热更技术贯穿AR开发的全流程。

包含热更数据制作与导出、热更数据上传与下载、热更数据的版本控制与数据加载

资源下载

“EnvInstaller”:点击下载

“AR SDK”:点击下载

文件目录

制作热更数据-AR图片识别场景

在前面的《使用插件一键安装》已介绍如何使用插件导入ARFoundation(ARCore)和HybridCLR的相关Package,这里仅介绍必须修改的设置。

导入AR SDK

  1. 通过“Assets -> Import Package -> Custom Package…”的方式导入 “AR SDK_v1.0.1.x.unitypackage”。导入成功后,菜单栏出现“Holo-XR”栏目。

  2. 点击“Holo-XR > Settings”,打开设置窗口。

    • (必需)勾选“热更新”启用SDK中涉及HybridCLR的脚本。

    • (必需)勾选“ARCore”,启用ARFoundation。(此处由于通过EnvInstaller安装的是ARCore,因此这里选用ARCore。目前也支持启用其它平台,将在后续文档中讲述。)

    • (可选)勾选“调试模式”和“打印日志”(勾选后,使用“EqLog.log(…)”)

Settings修改

使用ARFoundation

  1. 导入 “AR Foundation”和“ARCore Extensions for AR Foundation ”。

建议使用《使用插件一键安装》介绍的插件一键导入 ARCore的所有依赖。
此外,也可参考官方文档《AR Foundation 使用入门》按照步骤逐步导入。

  1. 转到 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)

示意图如下:

Player Settings修改

Player Settings修改

  1. 转到 Edit > Project Settings 以打开 Project Settings 窗口,点击XR Plug-in Management,启用ARCore。
Settings修改
  1. 转到ARCore,修改为深度可选的AR必备应用。
Settings修改

制作数据

示例:实现识别不同图片加载不同的模型

添加组件

在“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”,指定入口场景后,点击”导出“

img

  • 场景打包的结果为zip包和version文件

img


至此热更数据已制作完成,后续将介绍如何在程序中调用热更数据。


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 第十二讲 字符串-转义字符-字符串拼接-字符串替换
  • maven部署到私服
  • UDP网络聊天室
  • rockeylinux 搭建k8s 1.28.10
  • 探索Python编程乐趣:制作气泡反弹小游戏
  • 将C++ cv:mat 通过JNI 转换为jbtyearray,传到android端
  • Java中深拷贝和浅拷贝详解学习
  • D2Admin:企业中后台产品前端集成方案的探索与实践
  • adb 启动app并查看启动时间
  • 如何本地 Debug React 源码
  • 算法工程师需要学习C++的哪些知识?
  • Scala编程基础3 数组、映射、元组、集合
  • 社情民意调查主题和领域
  • XS2185一款八通道以太网供电控制器
  • 使用Spring Boot编写的小项目
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 2018一半小结一波
  • Android组件 - 收藏集 - 掘金
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • Docker下部署自己的LNMP工作环境
  • ES6系统学习----从Apollo Client看解构赋值
  • FastReport在线报表设计器工作原理
  • fetch 从初识到应用
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java-详解HashMap
  • JS专题之继承
  • node学习系列之简单文件上传
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • springboot_database项目介绍
  • TypeScript实现数据结构(一)栈,队列,链表
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 关于extract.autodesk.io的一些说明
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 少走弯路,给Java 1~5 年程序员的建议
  • 数据结构java版之冒泡排序及优化
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 听说你叫Java(二)–Servlet请求
  • 网页视频流m3u8/ts视频下载
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #define用法
  • #if #elif #endif
  • #java学习笔记(面向对象)----(未完结)
  • #NOIP 2014#Day.2 T3 解方程
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (C语言)逆序输出字符串
  • (二)linux使用docker容器运行mysql
  • (六)vue-router+UI组件库
  • (南京观海微电子)——COF介绍
  • (转)ObjectiveC 深浅拷贝学习
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .mysql secret在哪_MYSQL基本操作(上)