什么是ARFoundation?
ARFoundation是Unity提供的一个高级工具集,它封装了ARKit(用于iOS设备的AR平台、ARCore(用于Android设备的AR平台)、visionOS XR(用于Vision pro设备)和OpenXR(用于Hololens2、Mata Quest设备)的功能,使得开发者能够使用相同的代码和技术在不同的设备上构建AR(增强现实)应用程序,而无需为每个平台单独编写代码。
ARFoundation的目标是为开发者提供一个统一、开放的AR开发平台。通过资源包管理器,它可以很容易地集成到Unity的新项目中。此外,ARFoundation不仅支持ARKit、ARCore、visionOS和OpenXR,还可能在未来纳入其他AR SDK,进一步丰富AR开发环境。
ARFoundation提供了对大多数AR应用核心功能的支持,这些功能包括但不限于平面检测、图像跟踪、光照估计、人脸跟踪等。这些功能使得开发者能够创建出更加丰富、真实的AR体验。然而,这仅仅是开始,ARFoundation会不断更新,提供新平台功能支持和各种实用工具,同时保持向后兼容性。
对于开发者来说,ARFoundation的出现无疑大大简化了AR应用的开发过程。他们不再需要熟悉每个平台的特定API和开发工具,只需要掌握Unity和AR Foundation,就可以开发出跨平台的AR应用。这不仅提高了开发效率,也降低了开发成本。
总的来说,AR Foundation是Unity在AR领域的一项重要布局,它整合了ARKit、ARCore、visionOS和OpenXR的功能,为开发者提供了一个强大而统一的AR开发平台。随着AR技术的不断发展和市场的壮大,ARFoundation有望在未来发挥更大的作用。
所需包
AR Foundation包含了AR特性的接口,但自身并未实现任何特性。要在目标平台上使用AR Foundation,还需要该平台的单独提供者插件包。 Unity官方支持以下提供者插件:
- Google ARCore XR Plug-in on Android
- Apple ARKit XR Plug-in on iOS
- Apple visionOS XR Plug-in on visionOS
- OpenXR Plug-in on HoloLens 2
- Unity OpenXR: Meta on Meta Quest
如果你不同时安装目标平台的提供者插件包,AR Foundation将无法在该平台上工作。详细的设置指南,请参见安装AR Foundation。
支持功能
ARFoundation支持以下功能:
功能 | 描述 |
在目标平台上启用、禁用和配置AR。 | |
跟踪设备在物理空间中的位置和旋转。 | |
渲染设备摄像头的图像并进行光照估计。 | |
检测和跟踪平坦表面。 | |
检测和跟踪3D对象的包围盒。 | |
检测和跟踪2D图像。 | |
检测和跟踪3D对象。 | |
检测和跟踪人脸。 | |
检测和跟踪人体。 | |
检测和跟踪特征点。 | |
对跟踪项投射射线。 | |
跟踪空间中的任意点。 | |
生成环境的网格。 | |
生成环境的立方图。 | |
用物理对象遮挡AR内容并执行人体分割。 | |
跟踪共享AR会话中的其他设备。 |
平台支持
AR Foundation的提供者插件依赖于平台对AR功能的实现,例如Android上的Google ARCore和iOS上的Apple ARKit。并非所有功能都在所有平台上可用。
一些AR Foundation功能在XR模拟中可用,以便在Unity编辑器中测试你的AR应用。
下表列出了每个Unity支持的提供者插件中可用的功能:
功能 | ARCore | ARKit | OpenXR | XR模拟 | ||
安卓 | iOS | visionOS | HoloLens | MetaQuest | Unity Editor | |
是 | 是 | 是 | 是 | 是 | ||
是 | 是 | 是 | 是 | 是 | ||
是 | 是 | 是 | 是 | |||
是 | 是 | 是 | 是 | 是 | ||
是 | ||||||
是 | 是 | 是 | ||||
是 | ||||||
是 | 是 | |||||
是 | ||||||
是 | 是 | 是 | ||||
是 | 是 | 是 | 是 | 是 | ||
是 | 是 | 是 | 是 | 是 | ||
是 | 是 | 是 | ||||
是 | 是 | 是 | ||||
是 | 是 | 是 | ||||
是 |
文档资料
- ARFoundation系列讲解-教程目录
- Unity官方API:学习一门技术,官方教程是最权威的
- ARFoundation Samples :ARFoundation 示例地址
- PDF教程下载