AR Foundation 场景构建¶
建议先阅读 AR Foundation 配置 以正确配置AR Foundation,并确保 EasyAR 配置 的 Unity XR > AR Foundation Support 是开启状态。
什么情况下需要使用AR Foundation¶
Unity AR Foundation封装了一些跨平台的运动跟踪能力,请阅读 运动跟踪与EasyAR功能 来了解EasyAR功能与运动跟踪的关系,以及是否需要和什么时候需要使用AR Foundation。
多数情况下,你完全可以不使用AR Foundation,EasyAR将在所有受支持的设备上正常工作。你需要在以下两种情况下考虑使用AR Foundation:
如果你需要在所有支持ARCore的小米和红米手机上使用ARCore,请使用AR Foundation。由于小米厂商实现有bug,EasyAR的ARCore实现已经禁用部分小米手机,包括米9、米10、红米K20、红米K30、红米K40等系列(这里列出的不全,我们会根据情况随时调整)。在这些手机上,默认配置下将不会使用ARCore,在支持EasyAR运动跟踪的手机上会使用EasyAR运动跟踪。
如果你需要使用的ARCore或ARKit提供的一些功能在EasyAR中未封装,你也可以使用AR Foundation。比如AR Foundation提供了对ARKit的
ARKitFaceManager的支持,EasyAR并没有封装这个功能。
然而使用AR Foundation对EasyAR的功能来说有时并不是最优的:
在使用EasyAR Mega时,AR Foundation默认使用的配置并不是最优的,虽然EasyAR提供了选项对其进行优化,但需要注意的是,部分手机自身(比如小米10)存在bug,在修改配置之后无法获取图像,EasyAR将无法使用。使用时需要注意。
在EasyAR禁用的部分小米手机上,输入EasyAR的数据是灰度图而非彩色图,这会影响部分算法的效果。
注意
AR Foundation的支持是通过EasyAR Sense的自定义相机实现的。在自定义相机或头显上使用试用产品(个人版license、试用版XR license或试用版Mega服务等)时,EasyAR Sense每次启动后会在固定的有限时间内停止响应。使用付费版本的EasyAR Sense和付费的EasyAR Mega服务没有这个限制。
在AR Foundation场景中添加EasyAR支持¶
在AR Foundation场景添加EasyAR没有太多的特殊性,可以参考 AR Session , Camera , XR Origin 进行创建和配置。
需要注意XR Origin及Camera需要使用场景中现有的物体,不需要单独创建。
在EasyAR场景中添加AR Foundation支持¶
移除Camera和XR Origin (EasyAR)¶
如果你的场景里已经存在 Camera ,需要将其删除
如果你的场景里已经存在 XR Origin (EasyAR) ,需要将其删除
该节点下的所有子物体应该移动到下面新创建的XR Origin节点下,如果不移动则这些子节点不会按预期工作。
添加Unity AR Session和XR Origin¶
请遵循 AR Foundation 介绍 中的 Project Setup > Scene Setup 来添加AR Foundation的组件。注意选择你所使用的AR Foundation的版本来阅读。至少需要在场景中添加 AR Session 和 XR Origin。
使用右键菜单 XR > AR Session 添加 Unity的ARSession到场景中(这与EasyAR的ARSession不是一个东西,不冲突),
使用右键菜单 XR > XR Origin (Mobile AR) 添加 Unity的XR Origin到场景中(这与EasyAR的XR Origin用途类似,你需要删除EasyAR的XR Origin),
参考 Camera 调整Camera参数。
设备兼容与AR Foundation的动态启用¶
EasyAR兼容的设备比AR Foundation多的多,只要你不是只需要在支持AR Foundation的手机上运行,就都需要进行配置,只在需要时启用AR Foundation,其余情况需要完全关闭AR Foundation。
确保ARSession中包含你所需要的Frame Source¶
参考 AR Session 的描述,通过功能菜单创建的ARSession通常会自动添加 ARCore ARFoundation 以及 ARKit ARFoundation (部分图像跟踪等不需要SLAM功能的除外)。
如果它们不在你的ARSession中,你也可以通过菜单手动添加。
为了在AR Foundation不支持的手机上运行,还需要确保ARSession包含AR Foundation以外的Frame Source。一个典型的ARSession(通过菜单创建的默认配置)可能是这样的,
可以参考 AR Session 的描述,根据需要使用菜单对FrameSource进行排序。
仅在受支持的设备上启用AR Foundation¶
由于Unity的AR Foundation在手机上底层实现是ARCore和ARKit,只能在有限的设备上使用,尤其是很多国产Android手机上无法使用,所以通常建议仅在受支持的设备上启用对应脚本。
插件内置了这样的功能,确保 EasyAR 配置 的 Unity XR > Unity XR Auto Switch 启用即可。可以阅读 Unity XR 自动切换 来了解其行为,或根据需要自行修改AR Foundation脚本功能开关。
保留AR Foundation兼容性的EasyAR场景¶
正确添加了AR Foundation组件的场景,可以在AR Foundation包安装或未安装时都正常工作。
未安装AR Foundation时AR Foundation的功能及对应Frame Source不可用,且场景中会有部分脚本缺失,属于正常情况。
插件有很多sample都是属于这样的配置。如果你需要在这些sample中启用AR Foundatin支持,仅需按照 AR Foundation 配置 说明正确配置AR Foundation即可。