平台需求¶
平台支持¶
请参考 EasyAR Sense 平台要求 以及 Unity System requirements 。
关于 Android arm64-v8a
Unity使用的mono脚本后台不支持Android arm64-v8a。如果需要使用应开启IL2CPP。
关于 iOS armv7 及 Universal
在iOS平台上,不支持Architecture为arm64或Universal。仅支持选择Architecture为arm64。
关于 Mac Apple silicon
EasyAR Sense Unity Plugin从4.6版本开始支持在Apple silicon设备上原生运行。(EasyAR Sense 从4.3开始支持在Apple silicon设备上原生运行,老版本Unity插件只需把相关库文件拿进来即可使用。)
插件可以在Unity编辑器中正常使用。但由部分Unity版本为 "Apple silicon" 或 "Intel 64-bit + Apple silicon" 构建的应用可能无法正常工作。这应该是Unity对原生插件支持的bug。如果你发现你的应用在Mac上无法使用,且显示类似 "Fail to load EasyAR library" 或 "DllNotFoundException: EasyAR assembly" 的错误,你应该向Unity或Unity社区寻求帮助。
Unity兼容性¶
EasyAR Sense Unity Plugin需要使用 Unity 2019.4 或更高版本。
通常来说, EasyAR Sense不依赖很多变化的Unity API,所以如果Unity发布了新版本,EasyAR Sense Unity Plugin一般都可以正常使用。
Unity 2020.2 或更高版本 删除了iOS设备的OpenGLES支持,在这些版本中,视频录制功能将无法在iOS设备上使用。
Unity 6 (包括URP 17+ Render Graph)在4.6.4版本完全支持
.NET API 兼容性¶
EasyAR Sense Unity Plugin兼容 .NET Standard 2.0 API。
Graphics API¶
EasyAR Sense Unity Plugin 直接使用Unity的渲染管线,所有Unity中可以使用的图形API都可以天然被支持。
特例:由于EasyAR Sense的内部实现,录屏功能将只能在某些特定条件下工作,即在Android上Graphics API是OpenGLES2或OpenGLES3的情况以及在iOS上Graphics API是OpenGLES3的情况。
Scriptable Render Pipeline¶
EasyAR Sense Unity Plugin 支持 Universal Render Pipeline (URP) 7.0.0 或更新版本。
EasyAR Sense Unity Plugin 不支持 High Definition Render Pipeline (HDRP)。
注意
关于Unity 6 URP 17+ render graph支持的声明
虽然EasyAR已经支持Unity 6 URP 17+ render graph,但在Unity那边仍有未解决的问题。因此,我们仍然建议在遇到异常情形时使用Unity提供的URP兼容模式。
Unity 6000.0.32f1 render graph(兼容模式下运行正常)中的已知问题包括但不限于:
[未解决] 当你从EasyAR获取相机纹理(类似 ImageTracking_Coloring3D 及 Camera_VideoCamera 样例中的使用),在iOS/Mac设备上可以观察到视觉故障和伪影。我们已经在纯Unity包中复现该问题并报告给了Unity: Glitches on iOS with AR Camera Image Rendering (URP 17 render graph) 。问题进展请关注 Unity Issue UUM-87787 更新以及Unity未来版本的发布日志。(EasyAR中有 部分缓解措施 ,默认关闭)
[未解决] 当你从EasyAR获取相机纹理(类似 ImageTracking_Coloring3D 及 Camera_VideoCamera 样例中的使用),并设置Render Scale为非1(类似Unity的
Mobile_RPAsset.asset
模板中那样),在iOS/Mac设备上可以观察到黑屏。[EasyAR中已绕过(默认开启)] Windows DX11上相机画面会让场景中的物体渲染效果不可预测。
建议在Unity的问题跟踪页面确认问题的更新,并向Unity直接反馈。
WebGL¶
EasyAR Sense Unity Plugin 不支持 Unity的WebGL。
EasyAR Sense的功能和接口不支持在Unity WebGL上使用,但你仍然可以通过直接调用EasyAR CRS或其它服务接口的方式使用EasyAR的云服务。这种情况你不再需要EasyAR Sense Unity Plugin,而是通过Unity的网络API直接调用EasyAR的相关云服务接口。
Unity AR Foundation 兼容性¶
使用AR Foundation需要导入 EasyAR Sense Unity Plugin ARFoundation Extension
, 包名 com.easyar.sense.ext.arfoundation
。
EasyAR Sense Unity Plugin 支持 AR Foundation 4.1.3 或更新版本。
ARFoundation的支持是通过EasyAR Sense的自定义相机实现的。在使用个人版时,如果运行时选择了自定义相机,EasyAR每次启动将只能使用100秒。使用付费版本的EasyAR Sense没有这个限制。
ARCore 兼容性¶
EasyAR Sense Unity Plugin 内部包含了ARCore SDK 1.23.0,因此可以支持 ARCore (Google Play Services for AR) 1.23.0及以上版本。从我们观察来看,1.19.0 - 1.23.0应该也是支持的,但1.19.0以下是不支持的。如果使用AR Foundation或其它ARCore SDK的发布,ARCore 兼容性将由这些框架决定。
如果有使用到 ARCore,需要在Unity中做如下两个设置
使用 Gradle >= 5.6.4(默认情况下,Unity 2020及更新版本是满足条件的,因此主要在使用Unity 2019.4的时候需要注意)。详情可参考 Google的说明 。
使用 IL2CPP 并在构建中包含 arm64-v8a 。在arm64的设备上运行仅有armv7的程序,ARCore不会正常工作。这个在打包时是非强制的,但如果不满足条件会弹出警告。
华为 AR Engine 兼容性¶
EasyAR Sense Unity Plugin 内部包含了AREngine SDK 3.7.0.3,支持至少AREngine 2.18及以上版本。详细兼容信息请查阅AREngine官方说明。
这个版本不再支持华为官方已不再维护的 Huawei AR Engine Unity SDK
。并且由于替换了AREngine的实现,AREngine的使用将不再受Unity版本的限制。
AR Engine的支持是通过EasyAR Sense的自定义相机实现的。在使用个人版时,如果运行时选择了自定义相机,EasyAR每次启动将只能使用100秒。使用付费版本的EasyAR Sense没有这个限制。
头显兼容性¶
除Nreal/XREAL以外,其余设备支持目前仅针对部分用户开放使用,如有需要请联系商务。
版本4.6的 EasyAR Sense Unity Plugin 已经支持如下头显SDK
Nreal/XREAL SDK 1.6.0 或更新版本。
由于同一个SDK可以用来支持不同的设备,该文档对支持的设备可能更新不会特别及时。对于一些新设备的支持,请咨询对应硬件厂商。
目前已经确认支持的设备如下:
Nreal/XREAL X
Nreal/XREAL Light
如遇头显SDK更新,大部分情况下在没有相关接口改动的情况下都是可以支持的;如果EasyAR使用的部分接口存在变化,在EasyAR更新前可以自行修改对应头显的FrameSource脚本。
头显的支持是通过EasyAR Sense的自定义相机实现的。使用个人版的EasyAR Sense license或使用试用版本的Mega服务时,如果运行时选择了自定义相机,EasyAR每次启动将只能使用100秒。使用付费版本的EasyAR Sense和付费的EasyAR Mega服务没有这个限制。
在今后的发布中还会有更多设备支持。Mega用户已经可以使用预发布版本,支持Pico、Qiyu、Rokid等,详细支持信息请参考 最新预发布版本的头显兼容性 。
请注意:Rokid Air Pro Plus支持已结束,如遇任何使用问题或定位跟踪效果问题,请更新使用Rokid AR Studio。
如果你是硬件制造商,请阅读 如何创建EasyAR头显扩展 。