Version: 6000.3
语言: 中文
XR 包
Unity 中的 VR 和 MR 开发

Unity 中的 AR 开发

开始在 Unity 中进行增强现实开发。

VR虚拟现实 更多信息
术语表
或传统的实时 3D 应用程序。增强现实应用程序将其内容叠加在用户周围的现实世界中。AR 设备(例如眼镜、遮阳板或移动设备)使用透明显示器,允许用户看到现实世界,并在其上覆盖虚拟内容。

要在现实世界中放置对象,您必须首先确定将其放置在何处。例如,您可能希望将虚拟绘画放置在物理墙上。如果您放置虚拟盆栽植物,您可能希望将其放在物理桌子或地板上。AR 应用从用户的设备接收有关世界的信息,并决定如何使用这些信息为用户创造良好的体验。根据目标设备的功能,此信息包括平面(平面)的位置,以及物体、人物和人脸的检测。

以下部分概述了可用于在 Unity 中开发 AR 应用程序的 AR 场景AR 包AR 模板

AR 场景简介

当您打开典型的 AR 时场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
在 Unity 中,您不会找到很多3D 对象3D 游戏对象,例如立方体、地形或布娃娃。更多信息
请参阅术语表
场景层级视图中。相反,大多数游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
在场景中定义app. 3D内容的设置和逻辑通常创建为预制件一种资产类型,允许您存储包含组件和属性的游戏对象。预制件充当模板,你可以从中在场景中创建新的对象实例。更多信息
请参阅术语表
在运行时添加到场景中以响应 AR 相关事件。

Unity 中的典型 AR 场景

Unity 编辑器中的典型 AR 场景。

AR场景元素

以下部分概述了使 AR 工作所需的场景元素,以及您可以添加以启用特定 AR 功能的可选场景元素。要详细了解如何配置XR一个总称,包括虚拟现实 (VR)、增强现实 (AR) 和混合现实 (MR) 应用。支持这些形式的交互式应用程序的设备可以称为 XR 设备。更多信息
请参阅术语表
场景 设置XR场景

注意:当您在XR的插件Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表
管理
.

所需的场景元素

AR 场景必须包含AR SessionXR Origin游戏对象。XR Origin 的可用选项取决于您在项目中安装的软件包。AR Foundation 使用移动 AR,XR 交互工具包使用 AR 变体。

如果你从AR模板开始你的项目,这些组件将在场景中配置。

要手动添加相关的XR OriginAR Session游戏对象:

  1. 在“层级”窗口中单击鼠标右键。
  2. 转到 XR > GameObject
  3. 选择相关组件。

注意: 场景中只能有一个活动的XR原点。

AR会话

AR 会话游戏对象包含控制 AR 体验的生命周期和输入所需的组件:

XR Origin(移动 AR)

XR Origin(移动 AR)游戏对象是用于手持 AR 应用程序的 XR Origin 的变体。默认情况下,此变体未配置为控制器输入。此版本的XR Origin由 AR 基金会使用。

XR Origin(移动 AR)游戏对象由以下组件组成:

有关更多信息,请参阅AR Foundation设置场景设备跟踪

XR 起源 (AR)

XR Origin (AR) 游戏对象是用于手持 AR 应用程序的 XR Origin 的变体,并针对控制器输入进行了配置。XR 交互工具包提供了此变体。

XR Origin (AR) 游戏对象由以下内容组成:

请参阅创建基本场景,了解有关使用 XR Interaction Toolkit 进行场景配置的更多信息。

可选场景元素

要启用 AR 功能,您必须将相应的组件添加到您的项目中。通常,这包括 AR 管理器,但其他功能可能还需要其他组件。

要了解有关 AR Foundation 功能所需组件的更多信息,请参阅相关 AR Foundation 功能的文档。有关设置AR Foundation应用的更多详细信息,请访问场景设置

AR包

若要在 Unity 中构建 AR 应用,可以安装 AR Foundation 包以及要支持的设备的 XR 提供程序插件。

开发 AR/MR混合现实
请参阅术语表
适用于 Apple Vision Pro 设备的 App,您还需要 PolySpatial visionOS 软件包。Unity 提供了其他软件包,包括 XR 交互工具包,使开发 AR 体验变得更加容易和快捷。

AR 提供商插件

AR 平台可作为 XR 插件管理系统的提供商插件提供。要了解如何使用 XR 插件管理系统为目标平台添加和启用提供程序插件,请参阅 XR 项目设置

Unity 支持的 AR 提供程序插件包括:

插件 支持的设备
Apple ARKit XR 插件 iOS系统
Apple visionOS XR 插件 视觉作系统
Google ARCore XR 插件 人造人
OpenXR 插件 具有 OpenXR 运行时的设备

注意:根据平台或设备的不同,您可能需要安装其他包以及 OpenXR。例如,若要为 HoloLens 2 生成 AR 应用,必须安装 Microsoft 的混合现实 OpenXR 插件

AR基金会

AR Foundation 包支持 Unity 中的 AR 开发。

AR Foundation 使您能够使用 Unity 创建多平台 AR 应用程序。在AR Foundation项目中,你可以通过向场景添加相应的管理器组件来选择要启用的AR功能。当您在 AR 设备上构建和运行应用程序时,AR Foundation 会使用该平台的原生 AR SDK 启用这些功能,因此您可以创建一次并部署到世界领先的 AR 平台。

设备可以支持 AR,但不支持所有可能的 AR 功能。可用功能取决于设备平台和特定设备的功能。即使在同一平台上,功能也可能因设备而异。例如,特定设备型号可能通过其面向世界的摄像头支持 AR,但不支持其面向用户的摄像头。要了解哪些平台支持每个AR Foundation功能,请参阅AR Foundation文档中的平台支持表。

您可以从 AR Foundation 示例应用 (GitHub) 访问演示 AR Foundation 功能的示例场景。要了解更多信息,请参阅AR Foundation包文档中的AR Foundation示例

PolySpatial visionOS 软件包

Apple Vision Pro 设备的增强现实和混合现实开发依赖于一组在 visionOS 平台上实现 Unity PolySpatial 架构的软件包。

PolySpatial 架构将 Unity 游戏或应用拆分为两个逻辑部分:模拟控制器和演示视图。模拟控制器驱动所有特定于应用程序的逻辑,例如 MonoBehaviours 和其他脚本、用户界面行为、资产管理、物理等。几乎所有游戏行为都是模拟的一部分。演示视图处理输入和输出,包括呈现到显示器和其他形式的输出,例如音频。视图将从作系统接收到的输入(包括捏合手势和头部位置)发送到模拟,以处理每一帧。在每个模拟步骤之后,视图通过渲染来更新显示像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
请参阅术语表
到屏幕,向系统提交音频缓冲区等。

在 visionOS 平台上,模拟部分在 Unity Player 中运行,而演示视图则由 Apple 的 RealityKit 渲染。对于模拟中的每个可见对象,RealityKit 场景图中都存在一个相应的对象。

注意: PolySpatial 仅用于增强和混合现实混合现实 (MR) 将自己的虚拟环境与用户的现实世界环境相结合,并允许他们相互交互。
请参阅术语表
在 Apple Vision Pro 上。虚拟现实虚拟现实 (VR) 使用耳机和运动跟踪,让用户沉浸在逼真的图像和声音的人工 3D 世界中。更多信息
术语表
窗口应用程序在 Unity Player 中运行,该播放器还控制渲染(使用 Apple Metal 图形 API)。

XR 交互工具包

Unity XR 交互工具包提供了用于构建 AR 和 VR 交互的工具。XR 交互工具包提供的 AR 功能包括:

  • AR 手势系统将屏幕触摸映射到手势事件
  • AR 放置可交互组件,帮助在现实世界中放置虚拟对象
  • AR 手势交互器和可交互组件,以支持对象作,例如放置、选择、平移、旋转和缩放
  • AR 注释,用于通知用户放置在现实世界中的 AR 对象

AR模板

Unity 的 AR Mobile 模板为 Unity 中的增强现实开发提供了一个起点。此模板配置项目设置广泛的设置集合,允许您配置物理、音频、网络、图形、输入和项目的许多其他区域的行为方式。更多信息
请参阅术语表
,预安装必要的软件包,并包含带有各种预配置示例资产的示例场景,以演示 AR 就绪项目。创建新项目时,您可以通过 Unity Hub 访问模板。有关使用模板创建项目的信息,请参阅创建新项目

有关模板资产和示例场景的更多信息,请参阅AR Mobile模板文档。

其他资源

XR 包
Unity 中的 VR 和 MR 开发