EasyAR 配置¶
EasyAR配置页面可以从Unity菜单 EasyAR > Sense > Configuration 或 Edit > Project Settings > EasyAR 进入。
这里包含所有对EasyAR Sense Unity Plugin的全局配置
诊断选项配置¶
注意
除了全局配置外,ARSession上的诊断配置选项也会影响最终使用。你需要阅读 模拟运行及问题诊断 ,选择适合开发、测试或发布的配置。
通常建议在开发和测试阶段,配置
Message Output > Session Dump:
UIMessage Output > Sense Error:
UIAndLogMessage Output > Session Error:
UIAndLogMessage Output > Error:
UIAndLogMessage Output > Warning:
UIAndLogDeveloper Mode Switch:
DefaultSession Validation Tool > Frame Player:根据使用电脑相机还是eif文件来运行场景来配置
在发布上线阶段,配置
Message Output > Session Dump:
NoneMessage Output > Sense Error:
LogMessage Output > Session Error:
LogMessage Output > Error:
LogMessage Output > Warning:
LogDeveloper Mode Switch:
Default或Custom
并确保线上可以使用诊断面板或自定义的方式收集运行时数据。
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变种名称 |
功能差异 |
其它特殊性 |
|---|---|---|---|
|
Community/Enterprise |
不含录屏及惯导 |
|
|
CommunityFull/EnterpriseFull |
包含惯导及另外一些Mega功能 |
库文件体积较大 |
|
CommunityR |
包含录屏功能(仅Android) |
备注
一些Unity中无法使用的变种未列入在内,比如iOS的CommunityR变种。
默认值:
Normal:未导入EasyAR Mega 支持包Full:导入EasyAR Mega 支持包
推荐配置:
Full:使用EasyAR Mega或使用惯导功能:Normal:追求最小的包体大小,且不使用EasyAR Mega或惯导支持VideoRecording:需要使用录屏功能(仅限Android)
Permissions¶
应用权限配置。通常建议保持默认。
除相机权限外,其它权限配置不可更改,由其它功能配置所决定。
权限 |
是否可改 |
启用条件 |
权限说明 |
|---|---|---|---|
|
是 |
相机权限。使用相机设备需要的权限 |
|
|
否 |
Variant为VideoRecording |
麦克风权限,使用录屏功能需要的权限 |
|
否 |
导入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运行时的性能不会受到影响。
Enable Image File:开启 ImageTargetController.Source 类型为 ImageTargetController.ImageFileSourceData 的target的Gizmos。Enable Target Data File:开启 ImageTargetController.Source 类型为 ImageTargetController.TargetDataFileSourceData 的target的Gizmos。Enable Target:开启 ImageTargetController.Source 类型为 ImageTargetController.TargetSourceData 的target的Gizmos。Enable Texture 2D:开启 ImageTargetController.Source 类型为 ImageTargetController.Texture2DSourceData 的target的Gizmos。
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在应用中的使用。
关于 Optional 和 Required 的详细说明及上线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 Optional或External。
- 使用其它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会弹出警告,
这时需要修改项目配置,使用IL2CPP编译并选择ARM64支持。
备注
如确有需要,你可以选择 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 Variant 为 Full 时有效。
如需使用不同版本的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_Coloring3D 及 Workflow_FrameSource_CameraDevice 样例中的使用),在iOS/Mac设备上可以观察到视觉故障和伪影。我们已经在纯Unity包中复现该问题并报告给了Unity: Glitches on iOS with AR Camera Image Rendering (URP 17 render graph) 。问题进展请关注 Unity Issue UUM-87787 更新以及Unity未来版本的发布日志。(EasyAR中有 部分缓解措施 ,默认开启)