Version: Unity 6.0 (6000.0)
语言 : 中文
Unity 中的 AR 开发
XR 架构

Unity 中的 VR 开发

VR 开发与 Unity 中的任何实时 3D 开发具有共同的工作流程和设计注意事项。但是,区分因素包括:

  • 更丰富的用户输入:除了“传统”按钮和游戏杆控制器之外,VR 设备还提供空间头部、控制器以及(在某些情况下)手部和手指跟踪。
  • 与环境的更“亲密”交互:与可能更丰富的输入相结合,VR 提高了人们对与环境形成更密切的“物理”交互的期望,这种期望更高于典型的 3D 游戏和应用程序。用户希望能够拾取物品并与环境中的对象交互。通过头部跟踪,摄像机可以更靠近墙壁和环境的其他边界,甚至穿过墙壁和其他边界。
  • 用户舒适度问题:当摄像机移动与头部移动不匹配时,许多人在__ VR__ 中都会感到运动晕眩。您可以通过保持高帧率来缓解运动晕眩;通过提供一系列运动选项,用户可以选择他们适应的模式,并避免独立于用户的头部跟踪来移动摄像机。

要开始 VR 开发,请使用 XR 插件管理系统为要支持的设备安装和启用 XR 提供程序插件。请参阅 XR 项目设置以了解更多信息。

基本 VR 场景元素

基本 VR 场景应包含 XR 原点,该原点定义了跟踪数据的 3D 原点。游戏对象和组件的集合还包含主场景摄像机和表示用户控制器的游戏对象。请参阅设置 XR 场景以了解有关设置基本 VR 场景的说明。

除了基础知识外,通常还需要一种让用户随意走动并与创建的 3D 世界交互的方式。XR Interaction Toolkit 提供了用于创建交互(如选择和抓取对象)的组件。它还提供了一个可自定义的运动系统。除了__ XR__虚拟现实(VR)、增强现实(AR)和混合现实(MR)应用的泛指术语。支持这些形式的交互式应用程序的设备可被称为 XR 设备。更多信息
See in Glossary
Interaction Toolkit 外,还可以使用 Input System。

VR 包

Unity 中用于 VR 开发的大多数功能和 API 都是通过包提供的。这些包包括:

VR 提供程序插件

要在 Unity 中构建 VR 应用程序,请使用 XR 插件管理系统为要支持的设备添加和启用提供程序插件。请参阅 XR 项目设置以了解说明。

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

  • 适用于 Apple Vision Pro 的 Apple visionOS XR 插件。
  • 适用于 Oculus Rift、Meta Quest 2 和 Quest Pro 的 Oculus。
  • 适用于具有 OpenXR 运行时的任何设备(包括 Meta 头盔、VIVE 头盔、Valve SteamVR、HoloLens、Windows Mixed Reality 等)的 OpenXR。
  • 适用于 Sony PS VR 和 PS VR2 设备的 PlayStation VR(可供注册的 PlayStation 开发者使用)。请访问 PlayStation 合作伙伴以了解更多信息。
  • 用于在 Unity 编辑器播放 (Play) 模式视图中模拟 VR 头盔的 Mock HMD。

注意:许多头盔制造商正在努力将 OpenXR 运行时用作标准。但是此流程尚未完成,OpenXR 与头盔制造商自己的提供程序插件或 SDK 之间可能存在功能差异

XR Interaction Toolkit

XR Interaction Toolkit 有助于更轻松、更快速地开发 VR 应用程序。XR Interaction Toolkit 提供:

XR Core Utilities

XR Core Utilities 包包含其他 Unity XR 插件和包使用的软件实用程序。此包通常作为其他 XR 包的依赖项安装在项目中。

Input System

Unity Input System 包不仅支持从 VR 控制器按钮和游戏杆访问用户输入,而且还允许访问 XR 跟踪数据和触觉。如果使用 XR Interaction Toolkit 或 OpenXR 提供程序插件,则需要使用 Input System 包。

手部跟踪

手部跟踪功能允许用户通过手与 VR 应用程序交互。手部跟踪由 XR Hands 包支持。

Hands 包提供:

Unity 中的 AR 开发
XR 架构