版本:Unity 6 (6000.0)
语言:英语
XR 包
Unity 中的 VR 开发

Unity 中的 AR 开发

VR虚拟现实 更多信息
查看 词汇表
或传统的实时 3D 应用程序相比,增强现实 (AR) 涉及一套新的设计挑战。根据定义,增强现实应用程序将其内容叠加在用户周围的现实世界之上。要在现实世界中放置一个物体,您必须首先确定放置它的位置。例如,您可能希望将虚拟绘画放在物理墙壁上。如果您放置一个虚拟盆栽植物,您可能希望它放在物理桌子上或地板上。一个 AR 应用程序从用户的设备接收有关世界的信息,例如平面表面的位置、物体的检测、人员、面部等等;并且必须决定如何使用这些信息为用户创造良好的体验。

当您打开一个典型的 AR 场景场景包含游戏的环境和菜单。将每个独特的场景文件视为一个独特的关卡。在每个场景中,您放置环境、障碍物和装饰,本质上是设计和构建游戏的各个部分。 更多信息
查看 词汇表
在 Unity 中,您不会在场景或层次结构视图中找到许多 3D 对象3D 游戏对象,例如立方体、地形或布娃娃。 更多信息
查看 词汇表
。相反,场景中的大多数 游戏对象Unity 场景中的基本对象,可以代表角色、道具、场景、相机、航点等等。游戏对象的机能由附加到它的组件定义。 更多信息
查看 词汇表
定义了应用程序的设置和逻辑。3D 内容通常创建为 预制件一种资产类型,允许您存储一个完整的带有组件和属性的游戏对象。预制件充当模板,您可以从中在场景中创建新的对象实例。 更多信息
查看 词汇表
,这些预制件在运行时添加到场景中以响应 AR 相关事件。

A typical AR scene in Unity

Unity 编辑器中的典型 AR 场景

基本 AR 场景元素

一个基本的 AR 场景包含以下游戏对象和组件

如果您安装了 XR Interaction Toolkit,AR 应用程序的 XR 原点选项将更改为 XR 原点 (AR),它会添加游戏对象以表示手持控制器以及与场景中对象交互所需的工具包组件。

提示

  • 使用 游戏对象 > XR 菜单将这些游戏对象及其关联组件添加到场景中。(您也可以通过在 层次结构 窗口中右键单击来打开菜单。)
  • 您在一个场景中不应该有多个活动的 XR 原点

除了这些会话游戏对象之外,您还需要每个类型的 AR 功能对应的 AR 管理器 组件,应用程序会使用这些功能。

有关如何设置任何 XR 场景的概述,请参阅 设置 XR 场景

有关创建 AR 应用程序的更深入信息,请参阅 AR Foundation 包文档,包括 场景设置

AR 包

要在 Unity 中构建 AR 应用程序,您可以安装 AR Foundation 包以及您要支持的设备的 XR 提供程序 插件在 Unity 之外创建的一组代码,它在 Unity 中创建功能。您可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(平台特定的本机代码库)。 更多信息
查看 词汇表
。要为 Apple Vision Pro 设备开发 AR/MR混合现实
查看 词汇表
应用程序,您还需要 PolySpatial visionOS 包。Unity 提供额外的包,包括 Unity MarsXR Interaction Toolkit,以便更容易、更快速地开发 AR 体验。

AR 提供程序插件

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

使用 XR 插件管理系统添加并启用一个或多个这些插件。有关说明,请参阅 XR 项目设置

注意:根据平台或设备,您可能需要与 OpenXR 一起安装其他包。例如,要为 HoloLens 2 构建 AR 应用程序,您必须安装 Microsoft 的 混合现实 OpenXR 插件

AR Foundation

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

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

设备可以具有 AR 功能,但不能支持所有可能的 AR 功能。可用功能取决于设备平台和特定设备的功能。例如,ARCore 是 Google 为 Android 推出的 AR 平台,目前不支持身体跟踪,因此在您为 Android 平台构建应用程序时无法使用身体跟踪。即使在同一个平台上,功能也可能因设备而异。例如,特定设备型号可能通过其面向世界的摄像头支持 AR,但不能通过其面向用户的摄像头支持。

有关 AR Foundation 的更多信息,请参阅 AR Foundation 包文档

PolySpatial visionOS 包

为 Apple Vision Pro 设备进行的增强和 混合现实混合现实 (MR) 将自己的虚拟环境与用户的现实世界环境相结合,并允许它们相互交互。
查看 词汇表
开发依赖于一组包,这些包在 visionOS 平台上实现了 Unity PolySpatial 架构。

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

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

注意:PolySpatial 仅用于 Apple Vision Pro 上的增强和混合现实。 虚拟现实虚拟现实 (VR) 使用耳机和运动跟踪,将用户沉浸在逼真的图像和声音的人工 3D 世界中。 更多信息
查看 词汇表
和窗口化应用程序在 Unity Player 中运行,该播放器还控制渲染(使用 Apple Metal 图形 API)。

Unity Mars

Unity Mars 提供专为创建 AR 应用程序而设计的创作工具和更好的工作流程。

  • 通俗易懂的创作:您可以定义简单的规则,这些规则可以用通俗易懂的语言表达,例如“在每个水平面上创建草地”,以指定应用程序内容应如何根据用户设备检测到的 AR 功能来增强场景。
  • 基于代理的工作流程:您将代理添加到场景中以代表现实世界的 AR 功能。您可以在代理上设置条件和操作,以指定应用程序在检测到现实世界中匹配的对象时应如何响应。例如,您可以将代理添加到场景中,该代理在检测到合适的水平面时激活。
  • 编辑器内模拟:Unity Mars 提供模拟模式,以及预构建的示例环境,这有助于您在编辑器内测试 AR 逻辑。
  • 可定制的构建块: Unity Mars 包含用于创建全部或部分 AR 应用程序的模板和其他构建块。例如,培训模板提供 UI 和逻辑,您可以使用它们来构建一个 AR 教程,引导受训人员完成一系列步骤。

Unity Mars 需要兼容的许可证。Unity Pro、Unity Enterprise 和 Unity Industrial Collection 计划包含 Mars。如果您有其他计划,也可以单独获得 Unity Mars 的许可证。有关更多信息,请参阅 Unity Mars

XR Interaction Toolkit

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

  • AR 手势系统,将屏幕触摸映射到手势事件
  • AR 放置交互组件,帮助将虚拟物体放置在现实世界中
  • AR 手势交互器和可交互组件,支持物体操作,例如放置、选择、平移、旋转和缩放
  • AR 注释,向用户提供有关放置在现实世界中的 AR 物体的信息
XR 包
Unity 中的 VR 开发