消息输出

EasyAR Sense Unity Plugin运行时有三类消息。

  1. 运行异常

  2. ARSession状态转储

  3. EasyAR Mega开发特殊异常

../_images/image_d2_1.png

你可以根据需要调整前两类消息的输出方式。

使用老版本插件创建的场景, DiagnosticsController 如果未在编辑器中创建,则会在运行时自动以默认值创建。

运行异常

插件运行时有时会收到内部组件发现的一些问题,以消息形式出现在系统中。这些消息有些可能是无法继续使用的严重故障,有些可能是故意触发的,有些可能是设备不受支持等等,按严重级别从高到低分为如下几类:

  • Sense Error:EasyAR Sense 错误,通常与EasyAR Sense license有关。

  • Session Error:ARSession 错误,通常与设备不支持一些功能或错误的配置有关。

  • Error:其它错误信息

  • Warning:警告信息

由于Unity开发的特殊性,我们默认会将这些消息显示在UI上,以辅助开发。你可以控制这些消息如何展示,配置界面在ARSession上,配置仅作用于当前Session。

可以选择的输出模式如下:

  • UIAndLog :输出到UI和日志。在头戴设备上显示在眼前5米处。

  • Log :输出到系统日志。

建议在开发测试阶段使用默认配置 UIAndLog 。通常建议在发布时将选项改成 Log , 也可以保留 UIAndLog ,但这些UI消息通常对终端用户是不友好的。另外通常建议在运行前检查可用性并对不支持的设备进行合理提示,可以参考sample Workflow_ARSession

Sense Error

Sense Error是一类特殊的错误,出现错误时EasyAR功能无法继续使用。

  1. License未正确配置或校验失败。该错误可以通过使用正确的license重新初始化来恢复。

  2. 部分设备(包括AR Foundation、AREngine等所有使用自定义相机的设备或各种头显)上使用试用产品(个人版license、试用版XR license或试用版Mega服务等)超过固定的有限时间。该错误无法恢复。

Session Error

Session Error是当前ARSession无法继续工作的错误。修改配置并重新运行ARSession可能可以解决这些错误。这些错误一般是由于你的配置错误、启动流程中抛出了异常导致组装中断、设备不受当前ARSession配置支持或是运行过程中ARSession组件丢失等导致的。

常见情况有,

  1. Session组装错误:比如设备不受支持或支持设备的Frame Source没有正确配置在ARSession中等。

  2. Session启动错误:云服务配置信息错误导致创建云服务功能出错,或配置信息未填写(包括Mega服务、云识别服务、SpatialMap服务)等。

  3. Session运行中错误:ARSession组件被外部销毁,URP环境下未正确配置RendererFeature等。

通常来说,配置错误以及启动流程中的异常导致组装中断都应该在开发过程中避免。设备不支持的情况主要出现在需要运动跟踪能力的功能上,你需要参考 运动跟踪与EasyAR功能 了解哪些功能需要注意设备支持,并在开发阶段选择合适的设备进行调试。

ARSession状态转储

插件运行时可以收集ARSession的运行状态,包括各个组件的一些关键状态。这些状态信息对了解EasyAR的运行以及分析问题有很大帮助。

你可以控制这些状态如何展示,配置界面在ARSession上,配置仅作用于当前Session。

可以选择的输出模式如下:

  • UI :显示在UI并每帧更新。在头戴设备上,显示在眼前5米处。

  • Log :输出到系统日志,由于每帧都输出,对运行性能是有影响的,建议在开发或测试时使用。

  • None :不输出。

建议在开发测试阶段使用默认配置 UI ,上面显示的信息是与EasyAR工作人员进行沟通所必不可少的。

建议在正式上线后再修改为 None ,并保留打开 UI 的软件开关,或通过其它系统进行数据收集。在向EasyAR反馈问题时,EasyAR会向你或你的用户索取这些信息,以判断应用运行状态。

在绝大多数情况下,应用上线后运行出问题,应用端还是需要首先进行问题排查和分析,在排除应用问题并获取足够信息后反馈的问题才能较好解决。日志收集和分析的第三方SDK和平台比较多,建议上线前使用。如果你没有使用这些平台的经验或资源,保留打开 UI 的开关(比如使用隐藏开关)让用户反馈看到的信息将是比较简单的。

在今后的版本中,EasyAR还会提供更多收集数据的方案,但需要记住的是,控制权始终在应用手中,问题分析的路径要保持畅通。

EasyAR Mega开发特殊异常

Mega开发中,还有一类无法控制的警告信息,这类信息会在满足特定配置条件时显示在 UI 上,你无法直接关闭。

建议关注信息本身,文字上写明了出现的原因和配置方法。作为开发人员,你需要了解不同配置对不同使用方式的要求并根据开发进展合理选择。

这类信息是故意展示的,因为在特定使用条件下,这些功能用来辅助内容流程开发,但同时无法获取合理的运行结果,注意不要带着信息上线。