EasyAR 配置

EasyAR配置页面可以从Unity菜单 EasyAR > Sense > ConfigurationEdit > Project Settings > EasyAR 进入。

../_images/image_ps1_1.png

这里包含所有对EasyAR Sense Unity Plugin的全局配置

../_images/image_ps1_2.png

诊断选项配置

注意

除了全局配置外,ARSession上的诊断配置选项也会影响最终使用。你需要阅读 模拟运行及问题诊断 ,选择适合开发、测试或发布的配置。

通常建议在开发和测试阶段,配置

  • Message Output > Session Dump: UI

  • Message Output > Sense Error: UIAndLog

  • Message Output > Session Error: UIAndLog

  • Message Output > Error: UIAndLog

  • Message Output > Warning: UIAndLog

  • Developer Mode Switch: Default

  • Session Validation Tool > Frame Player:根据使用电脑相机还是eif文件来运行场景来配置

在发布上线阶段,配置

  • Message Output > Session Dump: None

  • Message Output > Sense Error: Log

  • Message Output > Session Error: Log

  • Message Output > Error: Log

  • Message Output > Warning: Log

  • Developer Mode Switch: DefaultCustom

并确保线上可以使用诊断面板或自定义的方式收集运行时数据。


Initialize On Startup

在启动时初始化EasyAR。通常建议保持这个选项打开。

如果关闭该选项,你需要手动初始化EasyAR Sense,具体方法可以参考 初始化EasyAR Sense

EasyAR Sense License

EasyAR Sense License相关配置。

LicenseKey

EasyAR Sense License Key。使用EasyAR功能必须填写可用的license。详见 https://www.easyar.cn

仅当使用接口手动初始化EasyAR Sense时可留空。

注意

在头显设备(Vision Pro、XREAL、Pico、Rokid等)设备上使用时,需要使用EasyAR XR License。

注意

在自定义相机或头显上使用试用产品(个人版license、试用版XR license或试用版Mega服务等)时,EasyAR Sense每次启动后会在固定的有限时间内停止响应。使用付费版本的EasyAR Sense和付费的EasyAR Mega服务没有这个限制。

Verify When Build

在构建Unity工程时验证license Key。

当这个选项打开时,Unity项目构建过程会验证license Key,如果license在构建平台上无效或不包含Unity Player Settings中设置的包名,构建过程将会失败。如果你需要使用其它地方配置的license key或者需要在Unity构建过程之后修改包名,可以关闭这个选项。

Lib Variants

EasyAR Sense 库变种配置。

EasyAR Sense通常有多种变种,其不同变种的功能有差异。这里列出插件中集成的库变种对比。

Variant

EasyAR Sense变种名称

功能差异

其它特殊性

Normal

Community/Enterprise

不含录屏及惯导

Full

CommunityFull/EnterpriseFull

包含惯导及另外一些Mega功能

库文件体积较大

VideoRecording

CommunityR

包含录屏功能(仅Android)

备注

一些Unity中无法使用的变种未列入在内,比如iOS的CommunityR变种。

默认值:

  • Normal :未导入EasyAR Mega 支持包

  • Full :导入EasyAR Mega 支持包

推荐配置:

  • Full :使用EasyAR Mega或使用惯导功能:

  • Normal :追求最小的包体大小,且不使用EasyAR Mega或惯导支持

  • VideoRecording :需要使用录屏功能(仅限Android)

Permissions

应用权限配置。通常建议保持默认。

除相机权限外,其它权限配置不可更改,由其它功能配置所决定。

权限

是否可改

启用条件

权限说明

Camera

相机权限。使用相机设备需要的权限

AndroidMicrophone

Variant为VideoRecording

麦克风权限,使用录屏功能需要的权限

Location

导入Mega支持包

(fine)定位权限,使用 EasyAR Mega需要的权限

Unity XR

Unity XR框架(AR Foundation等)相关配置。

AR Foundation Support

AR Foundation支持开关,建议保持打开。

在极个别情况下,比如你需要使用AR Foundation 4或AR Foundation更新导致编译出错,可以关闭这个选项,但插件内所有与AR Foundation相关的功能将同时禁用。

备注

切换此开关代码会重新编译。

Unity XR Auto Switch

自动切换Unity XR(比如AR Foundation)物体的功能配置。

  • Editor :编辑模式选项
    • Disable AR Session :存在 ARSession 时,编辑时禁用AR Foundation的ARSession。

  • Player :运行模式选项
    • Enable :启用运行时控制。注意:关闭该选项,编辑模式被禁用的组件在运行时不会被恢复。

    • Enable If Desktop :在Windows/Mac上启用。

    • Enable If Mobile AR On Startup :切换器启动时,如果移动AR(ARKit/ARCore)的loader是激活的,则启用。通常这个选项需要 XR Plug-in Management中的 Initialize XR on Startup 是选中的。

    • Disable If Non Mobile AR Post Startup :切换器启动时,如果存在移动AR(ARKit/ARCore)之外的其它loader,但没有任何一个loader是激活的,则禁用。通常这个选项会在 XR Plug-in Management中的 Initialize XR on Startup 未选中时被使用。

    • Restore AR Session When Disabled :功能禁用时,恢复(启用)所有被禁用的AR Foundation的ARSession(无论它是否由EasyAR所禁用)。这个选项通常用于恢复编辑时被禁用的组件。

详细功能说明请参考 Unity XR 自动切换


Mega

EasyAR Mega功能配置。

InertialCameraDevice Support

只读选项,显示当前配置下惯导功能是否可用以及ONNX运行时信息。

如果显示信息不符合需求,请根据需要修改 Lib Variants 以及 ONNX Runtime (Bundled) 选项

Mega Block > Localization Service Access [Global]

全局Mega Block定位服务器配置。

Mega Landmark > Localization Service Access [Global]

全局Mega Landmark定位服务器配置。

Spatial Map

EasyAR空间地图功能配置。

Service Access [Global]

全局稀疏地图服务器配置。

Image Tracking

EasyAR图像跟踪功能配置。

Target Gizmo

编辑器下ImageTarget的Gizmos配置。

打开这些选项将会在Unity Editor中显示对应gizmo,如果场景中该类target过多,可能会影响编辑器中的启动性能。在设备上运行时,Unity运行时的性能不会受到影响。

Cloud Recognition (CRS) > Service Access [Global]

全局云识别服务器配置。

Object Tracking

EasyAR物体跟踪功能配置。

Target Gizmo

编辑器下ObjectTarget的Gizmos配置。

  • Enable:开启Gizmos。


Third-Party Libraries

第三方库配置。

AR Core SDK

AR Core SDK配置。

ARCore提供了在部分Android设备上的运动跟踪能力,请阅读 运动跟踪与EasyAR功能 来了解EasyAR功能与运动跟踪的关系,以及是否需要和什么时候需要使用ARCore。

  • AR Foundation Or Optional: 随EasyAR或 AR Foundation 一起分发的ARCore SDK将会被包含在应用中,根据ARCore XR Plugin的设置决定。一般情况下推荐使用这个选项,它会自动处理 AR Foundation 的情况。

  • Optional: ARCore 功能在支持ARCore并安装了Google Play Services for AR的设备上可以使用。

  • Required: 应用将只能在支持ARCore并安装了Google Play Services for AR的设备上运行。

  • External: 如果你在使用 AR Foundation 或其它ARCore SDK分发,可以使用这个选项。这样随EasyAR一起分发的ARCore SDK将不会使用。你也可以使用这个选项来完全排除ARCore SDK在应用中的使用。

关于 OptionalRequired 的详细说明及上线Google Play Store应用需要做的其它配置可以参考 Google的说明

备注

在EasyAR Sense Unity Plugin中,ARCore的支持所需的库文件和配置已经在插件包中,但要在手机上运行,仍需在手机上安装 Google Play Services for AR

  • 使用随插件分发的 ARCore SDK

    EasyAR的ARCore 封装在使用随EasyAR一起分发的ARCore SDK时,不会要求使用GLES3,这与 AR Foundation 所使用的 ARCore XR Plugin 不同。但是我们没有导出 ARCore 的丰富功能。如果你需要使用ARCore的平面检测等功能,仍旧建议使用 AR Foundation

  • 使用 AR Foundation的 ARCore SDK

    如果需要使用 AR Foundation的 ARCore SDK,可以参考 Google的说明 进行配置,这时 ARCore SDK 选项需要选择 AR Foundation Or OptionalExternal

  • 使用其它ARCore SDK

    如果有其它第三方插件或项目内有ARCore SDK的分发,也可以使用这些ARCore SDK。这时 ARCore SDK 选项需要选择 External ,并根据具体插件或项目的要求进行配置。

重要

如果你需要在所有支持ARCore的小米和红米手机上使用ARCore,请使用AR Foundation。由于小米厂商实现有bug,EasyAR的ARCore实现已经禁用部分小米手机,包括米9、米10、红米K20、红米K30、红米K40等系列(这里列出的不全)。在这些手机上,默认配置下将不会使用ARCore,在支持EasyAR运动跟踪的手机上会使用EasyAR运动跟踪。

Warn 32-bit-only ARCore-enabled build

根据Google的政策,在arm64的设备上运行仅有armv7的程序,ARCore不会正常工作。在打包时如果未选择ARM64会弹出警告,

../_images/image_g4_11.png

这时需要修改项目配置,使用IL2CPP编译并选择ARM64支持。

../_images/image_g4_6.png

备注

如确有需要,你可以选择 Continue and don't warn me again ,或者关闭该选项,这将关闭打包时的检查。关闭检查只是在打包时不弹出提示,但运行时在一些设备上将有可能出现异常,包括但不限于崩溃或黑屏等。

AR Engine SDK

AREngine SDK配置。

AREngine提供了在部分Android设备上的运动跟踪能力,请阅读 运动跟踪与EasyAR功能 来了解EasyAR功能与运动跟踪的关系,以及是否需要和什么时候需要使用AREngine。

  • AREngineInterop :AREngineInterop可用。随EasyAR一起分发的AREngine SDK将会被包含在应用中。

  • External :AREngineInterop可用。随EasyAR一起分发的AREngine SDK将不会使用。

  • Disabled :AREngineInterop不可用。随EasyAR一起分发的AREngine SDK将不会使用。所有与AREngine有关的功能将被禁用。

ONNX Runtime (Bundled)

是否使用捆绑的ONNX运行时。仅在 Lib VariantFull 时有效。

如需使用不同版本的ONNX,可用从ONNX官方获取更新版本并关闭该选项。使用自己编译的二进制不兼容的ONNX将导致未知错误。

Workaround For Unity

针对Unity bug或不合理行为的应对方案。

GenerateXMLDoc

在脚本重新加载时生成XML文档,以使API文档的intelliSense可以工作。

URP17RG_DX11_RuinedScene

Workaround URP 17 Render Graph DX11 场景渲染被毁损。Unity 6.2及更新版本中该选项已关闭。

URP17RG_IOS_Glitches_Partial

Partial workaround for https://issuetracker.unity3d.com/issues/ios-visual-artifacts-are-visible-when-the-cameras-feed-is-rendered-to-a-texture.

问题简述:当你从EasyAR获取相机纹理(类似 ImageTracking_Coloring3DWorkflow_FrameSource_CameraDevice 样例中的使用),在iOS/Mac设备上可以观察到视觉故障和伪影。我们已经在纯Unity包中复现该问题并报告给了Unity: Glitches on iOS with AR Camera Image Rendering (URP 17 render graph) 。问题进展请关注 Unity Issue UUM-87787 更新以及Unity未来版本的发布日志。(EasyAR中有 部分缓解措施 ,默认开启)