目录
[XR Interaction Manager](#XR Interaction Manager)
[XR Controller](#XR Controller)
[XR Interactor](#XR Interactor)
[XR Direct Interactor](#XR Direct Interactor)
[XR Ray Interactor](#XR Ray Interactor)
[XR Socket Interactor](#XR Socket Interactor)
[XR Gaze Interactor](#XR Gaze Interactor)
[XR Interaction Group](#XR Interaction Group)
[XR Interactable](#XR Interactable)
[XR Simple Interactable](#XR Simple Interactable)
[XR Grab Interactable](#XR Grab Interactable)
[三、XR Origin](#三、XR Origin)
[XR Origin 层级结构](#XR Origin 层级结构)
[XR Origin 组件属性](#XR Origin 组件属性)
[与 Teleportation Provider 的集成](#与 Teleportation Provider 的集成)
[与 XR Interaction Manager 的协同](#与 XR Interaction Manager 的协同)
一、插件介绍
Unity XR-XR Interaction Toolkit开发使用方法(一)-CSDN博客
Unity XR-XR Interaction Toolkit开发使用方法(二)Hisense XR-V3 Pro SDK接入-CSDN博客
二、主要组件
XR Interaction Manager
Unity XR-XR Interaction Toolkit开发使用方法(三)组件介绍(XR Interaction Manager)-CSDN博客
XR Controller
Unity XR-XR Interaction Toolkit开发使用方法(四)组件介绍(XR Controller)-CSDN博客
XR Interactor
Unity XR-XR Interaction Toolkit开发使用方法(五)组件介绍(XR Interactor)-CSDN博客
XR Direct Interactor
Unity XR-XR Interaction Toolkit开发使用方法(六)组件配置(XR Direct Interactor)-CSDN博客
XR Ray Interactor
Unity XR-XR Interaction Toolkit开发使用方法(七)组件配置(XR Ray Interactor)-CSDN博客
XR Socket Interactor
Unity XR-XR Interaction Toolkit开发使用方法(八)组件介绍(XR Socket Interactor)-CSDN博客
XR Gaze Interactor
Unity XR-XR Interaction Toolkit开发使用方法(九)组件介绍(XR Gaze Interactor)-CSDN博客
XR Interaction Group
Unity XR-XR Interaction Toolkit开发使用方法(十)组件介绍(XR Interaction Group)-CSDN博客
XR Interactable
Unity XR-XR Interaction Toolkit开发使用方法(十一)组件介绍(XR Interactable)-CSDN博客
XR Simple Interactable
Unity XR-XR Interaction Toolkit开发使用方法(十二)组件介绍(XR Simple Interactable)-CSDN博客
XR Grab Interactable
Unity XR-XR Interaction Toolkit开发使用方法(十三)组件介绍(XR Grab Interactable)-CSDN博客
三、XR Origin
1、组件介绍
Unity XR Origin 是 XR Interaction Toolkit 中用于管理 XR 玩家视角与设备追踪 的核心组件,充当玩家在虚拟空间中的"锚点"。它定义了用户的头部(摄像机)、手部(控制器)的位置追踪逻辑,并协调与 XR 设备的空间映射,是构建 XR 应用的基石。
XR Origin 的作用是将对象和可追踪特征转换到它们在 Unity 场景中的最终位置、方向和缩放比例。

2、核心功能与作用
空间坐标系管理
-
定义玩家在虚拟世界中的 原点位置,将物理设备的运动(如头显、手柄)映射到虚拟空间。
-
支持 Tracking Origin Mode(追踪原点模式),适配不同设备的空间定位需求。
设备追踪整合
-
管理头戴显示器(HMD)、左右手控制器的追踪数据。
-
自动绑定
XR Controller
和XR Interactor
,实现手柄输入与交互逻辑的关联。
摄像机与视角控制
-
包含主摄像机(
Camera
),代表玩家的第一人称视角。 -
处理 地面高度校准 、房间规模(Room-Scale) 或 坐姿(Seated) 体验的配置。
跨设备兼容性
- 抽象不同 XR 设备的底层差异(如 Oculus、OpenXR、Windows MR),提供统一的配置接口。
3、组件结构与层级
XR Origin 层级结构
XR Origin 组件需要特定的 GameObject 层级结构才能正常工作。推荐的 XR 场景配置如下:
GameObject | 组件 |
---|---|
XR Origin | XROrigin |
Camera Offset | 无 |
Main Camera | Camera, TrackedPoseDriver, ARCameraManager (AR), ARCameraBackground (AR) |
LeftHand Controller | XRController, XRRayInteractor, LineRenderer, 交互可视化组件 |
RightHand Controller | XRController, XRRayInteractor, LineRenderer, 交互可视化组件 |
典型的 XR Origin
层级结构如下:
XR Origin (根对象)
├── Camera Offset (可选,用于高度偏移)
│ ├── Main Camera (玩家视角)
│ ├── LeftHand Controller (左手控制器)
│ └── RightHand Controller (右手控制器)
└── Other Tracked Devices (如追踪器)
-
Camera Offset:允许动态调整摄像机的位置偏移(如角色身高修正)。
-
Main Camera :必须附加
Camera
组件和Tracked Pose Driver
(用于头显追踪)。 -
Left/RightHand Controller :绑定
XR Controller
和交互器(如XR Direct Interactor
)。
4、关键配置参数
XR Origin 组件属性
属性 | 描述 |
---|---|
Origin Base GameObject | 该 GameObject 的 Transform 作为场景中可追踪元素或设备相关元素的基准坐标系。 |
Camera Floor Offset GameObject | 用于偏移 XR Origin 摄像机位置的 GameObject。XR Origin 组件会根据所选跟踪原点模式控制该 GameObject 的 Transform 的 Y 坐标: ● Device 模式 :根据 Camera Offset 的值初始化,用户重置视图时会重置。 ● Floor 模式:初始化为零。 |
Camera | XR Origin 的主摄像机。该摄像机所在的 GameObject 必须是 Origin Base GameObject 的子对象,且应为 Camera Floor Offset GameObject 的子级。此摄像机用于渲染 XR 场景。 |
Tracking Origin Mode | 指定 XR Origin 与 XR 设备之间的空间关系(具体模式见下方表格)。 |
Camera Y Offset | 当使用 Device 跟踪原点模式时,摄像机与 XR Origin 的 Y 轴偏移距离。仅在模式为 Not Specified 或 Device 时显示。 |
跟踪原点模式
跟踪原点模式 | 描述 |
---|---|
Not Specified | 使用设备的默认跟踪模式(Device 或 Floor)。 |
Device | 此模式下需手动设置用户高度(VR)或手持设备高度(AR),通过 Camera Y Offset 调整。此模式下,XR Input Subsystem 返回的位姿不包含高度信息,需通过修改 XROrigin.CameraYOffset 属性手动调整。 |
Floor | 与 Device 模式不同,此模式通过 XR 设备检测的"地面"或其他表面自动推算高度。XR Input Subsystem 返回的位姿包含用户(VR)或设备(AR)的高度信息。 |
5、实际应用场景
场景1:基础玩家设置
- 创建空对象,添加
XR Origin
组件。 - 在子对象中创建
Camera Offset
,附加Main Camera
和Tracked Pose Driver
。 - 添加左右手控制器对象,绑定
XR Controller
和XR Direct Interactor
。
场景2:地面高度校准
cs
// 脚本动态校准地面高度
public XROrigin xrOrigin;
public float manualHeight = 1.75f;
void Start()
{
xrOrigin.RequestTrackingOriginMode(TrackingOriginMode.Floor);
xrOrigin.CameraYOffset = manualHeight; // 若自动校准失败,手动设置
}
场景3:传送后更新原点
cs
// 传送后调整XR Origin位置
public TeleportationProvider teleportationProvider;
public XROrigin xrOrigin;
void Teleport(Vector3 newPosition)
{
xrOrigin.MoveCameraToWorldLocation(newPosition);
}
6、与其他组件的协作
与 Teleportation Provider 的集成
- 使用
XR Origin
的MoveCameraToWorldLocation
方法实现玩家瞬移。 - 示例:当射线指向
Teleportation Area
时,调用该方法更新原点。
与 XR Interaction Manager 的协同
XR Origin
的子控制器自动注册到交互管理器,确保交互事件正确分发。
与物理系统的配合
- 通过
XR Origin
的摄像机高度,动态调整碰撞体(如角色胶囊碰撞体高度)。
7、常见问题与解决
问题:玩家视角高度不正确
解决:
- 检查
Tracking Origin Mode
是否为Floor
(需设备支持地面检测)。 - 手动设置
Camera Y Offset
或运行设备的高度校准流程。
问题:手柄模型位置偏移
排查:
- 确认控制器预制体的
Attach Transform
与模型抓取点对齐。 - 检查
XR Controller
的Tracking Origin Mode
是否与XR Origin
一致。
问题:瞬移后场景错位
- 修复 :使用
MoveCameraToWorldLocation
而非直接修改 Transform,确保所有追踪设备同步更新。