Unity接入HuaweiAREngine

更新时间:2023-06-24 18:12:53 阅读: 评论:0

Unity接⼊HuaweiAREngine
说在前⾯
使⽤Unity进⾏AR开发的开发者基本都会遇到华为⼿机的坎:由于⾕歌的制裁,ARCore并不能覆盖华为的新机型导致新的机型已经不能使⽤ARFoundation⽅案;使⽤第三⽅通⽤的ARsdk也并不能完美兼容常⽤的华为机型,毕竟官⽅原⽣的sdk才是最适配⾃⾝机型的。最近我也在学习接⼊HuaweiAREngine与ARFoundation兼容使⽤的项⽬,搜集了⼀些解决⽅案并进⾏了总结,由于unity相关的⽅案官⽅迟迟还没有更新(官⽅也关闭了旧的2.0版本的下载⼊⼝ ),下⾯提供的sdk版本也是测试版本,仅供学习使⽤。
⼀、简介
Huawei AR Engine 是⼀个在 Android 智能⼿机上构建增强现实应⽤程序的平台。⽬前⽀持的功能包括:
运动跟踪
平⾯检测
光照估计和命中测试
⼿势识别和⾻骼跟踪
⼈体⾻骼跟踪convictions
⼈体蒙版
图像跟踪
场景⽹格
⾯部表情
以下是官⽅给出的⽀持列表:
服务设备类
设备型号戴高帽子
AR Engine 服务华为P系
P50 Pro、P40 系列、P30、P30Lite、P30 Pro、P20、P20 Pro
油菜的英文华为
Mate系
quMate 40 系列、Mate 30 系列、Mate X、Mate Xs、Mate 20 X (5G)、Mate RS、Mate 20 X、Mate 20、Mate
20 Pro、Mate 20 RS、Mate X 2 (TET)
华为
Nova系
各国教师节
nova 8、nova 8 Pro、nova 7、nova 7 Pro、nova 6、nova 6 (5G)、nova 5、nova 5 Pro、nova 5i Pro、nova 5z、nova 4、nova 4e、nova 3
华为畅
想系列
畅享9 Plus
情人节快乐 英文
华为麦
芒系列
麦芒7
荣耀⼿
荣耀30、荣耀30 Pro、荣耀30 Pro+、荣耀30S、荣耀V30、荣耀V30 Pro、荣耀20、荣耀20 Pro、荣耀V20、荣耀10、荣耀9x、荣耀9X Pro、荣耀8X、荣耀Magic2、荣耀 Play
平板系
M6、MatePad、MatePad Pro
但并不是列表上的机型都⽀持Huawei Engine的所有功能,以下是部分机型⽀持的功能介绍:
WorldAR不⽀持Mate20系列,P20系列,Nova3,麦芒5,荣耀V20系列
BodyAR不启动Mate20系列,P20系列,Nova3,麦芒5,荣耀V20系列
BodyAR启动荣耀V20系列
托福口语时间HandAR不启动Mate20系列,P20系列,Nova3,麦芒5 ,荣耀V20系列
HandAR启动Mate20 Pro
FaceAR启动Mate20 Pro
WorldBodyAR不启动Mate20系列,P20系列,Nova3,麦芒5,荣耀V20系列
WorldBodyAR启动(world不⽀持,body启动)荣耀V20系列
⼆、Huawei AR Engine的unitypackage介绍
⽬前华为官⽹上是找不到unity相关的sdk,但⽬前华为论坛上还是存在内测版的Huawei AR Engine的unitypackage,我这边有两个unitypackage的版本,分别对应不同的unity版本使⽤
其中:
1.arenginesdk-sample-unity-
2.0.0.5
环境要求:
⼿机EMUI版本9.0以上
在应⽤市场下载并安装AREngine
Unity 2017.4LTS 以上 Unity2019.4LTS以下的版本
2.arenginesdk-sample-unity-
3.0.0.11
环境要求:
⼿机EMUI版本9.0以上
在应⽤市场下载并安装AREngine
Unity2020LTS以上的版本
因为Huawei AREngine需要⽤到⼀个ARBackgroundRenderer的类来渲染AR场景,这个类在2020以上的版本已经被其他的类取代,但AREngine找不到引⽤所以导致报错
所以建议Unity2019LTS以下的版本使⽤2.0的版本,Unity2020以上的版本只能使⽤3.0以上的版本,开发者需要根据⾃⼰的unity版本来使⽤sdk。
三、SDK的接⼊与使⽤
因为2.0与3.0除了⼀些细节部分外使⽤的流程基本⼀致,所以这⾥就不分开直接⼀起说明。导⼊sdk后,在Example⽂件夹可以查看官⽅提供的所有demo
每个demo⽂件夹下有对应的功能配置,每个场景都需要加载对应的配置才能正常使⽤, 这⾥只挑⼀个demo作简单介绍。
WorldARSample这个demo主要是演⽰AR模型识别真实环境的地⾯并放置
配置⽂件的属性介绍如下:
/
**\if english
* Lighting mode of an configuration object. Default value is AMBIENT_INTENSITY。
* \el
* 配置项的光照模式。默认启动环境光。
* \endif
*/
public ARConfigLightingMode LightingMode = ARConfigLightingMode.AMBIENT_INTENSITY;
/**\if english
* Update mode of an configuration object. Default value is BLOCKING。
* \el
lobit
* 配置项的更新模式。默认阻塞模式。
* \endif
* \endif
*/
public ARConfigUpdateMode UpdateMode = ARConfigUpdateMode.BLOCKING;
/**\if english
* Power mode of an configuration object. Default value is NORMAL。
* \el
* 配置项的功耗模式。默认不使⽤低功耗。
* \endif
*/
public ARConfigPowerMode PowerMode = ARConfigPowerMode.NORMAL;
/
**\if english
* Item of depth switch of an configuration object. Default value is \c true。
* \el
* 配置项的深度开关。默认打开深度流。
* \endif
*/
public bool EnableDepth = true;
/**\if english
* Item of mask switch an configuration object. Default value is \c fal.
* \el元旦的英语
* 配置项的遮罩开关。默认关闭遮罩功能。
* \endif
*/
public bool EnableMask = fal;
/**\if english
* Item of scenemesh switch an configuration object. Default value is \c fal.
* \el
* 配置项的环境Mesh开关。默认关闭环境Mesh。
* \endif
*/
public bool EnableMesh = fal;
/**\if english
* Enable mantic plane mode. Default value is \c fal.
* \el
* 配置使能语义识别平⾯模式。默认关闭。
* \endif
*/
public bool SemanticPlaneMode = fal;
/**\if english
* The way the configuration item is opened by the camera. The camera is turned on internally by default.        * \el
* 配置项的相机打开⽅式。默认内部打开相机。
* \endif
*/
public int ImageInputMode = 0;
/**多面体的概念
* \if english
* Focus mode of this configuratioin. Default is FIXED_FOCUS.
* \el
* 对焦模式,默认是锁定对焦到⽆穷远。
* \endif
*/
public ARConfigFocusMode FocusMode = ARConfigFocusMode.FIXED_FOCUS;
/**
* \if english
* Select the behavior of the plane detection subsystem. Default is Enable.
* \el
* 设置平⾯检测的⾏为,默认使能。
* \endif
*/
public ARConfigPlaneFindingMode PlaneFindingMode =ARConfigPlaneFindingMode.ENABLE;
///@cond ContainImageAR
/**
/**
* \if english
* Set the databa of image tracking. Default is null.
* \el
* 设置图像跟踪的数据库。
* \endif
*/
public ARAugmentedImageDataba AugmentedImageDataba = null;
开发者可以根据⾃⼰需要的功能对配置表进⾏配置。
使⽤Huawei AREngine sdk开发时有些需要注意的细节:
1.判断设备是否可⽤AR,可以查阅sdk中的AREnginesSelector.cs类
AREnginesAvaliblity aREnginesAvaliblity = AREnginesSelector.Instance.CheckDeviceExecuteAbility();
if ((AREnginesAvaliblity.HUAWEI_AR_ENGINE&&aREnginesAvaliblity) != 0)
{
AREnginesSelector.Instance.SetAREngine(AREnginesType.HUAWEI_AR_ENGINE);
}}
2.检测设置是否已经安装AR的依赖(AREngine.apk),可以查阅sdk中的AREnginesApk.cs类

本文发布于:2023-06-24 18:12:53,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1030515.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:默认   配置   模式   版本   功能   需要   机型
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图