首页 / XR 项目专题 / Unity XR Interaction Toolkit
XR · XRI 3.x
XR Ray Interactor 详解:Home 场景射线交互器
真正负责"射线打出去并与 UI / 模型发生交互"的组件是 XR Ray Interactor,不是 XR Interactor Line Visual。本文按属性分组逐一解释。
XRI 3.4.1
2026-08-06 重写
Unity XR
VR 项目专题
它与"线"的区别
Home 场景里左右手控制器各挂一个 XR Ray Interactor:
XR Ray Interactor:负责真正的命中、选中、交互。
XR Interactor Line Visual:只是把那条射线画出来,不参与命中逻辑。
看到线在、点不到按钮 → 优先排查 XR Ray Interactor 的配置,不是视觉。
交互配置
| 属性 | 作用 |
Interaction Manager | 通信的 XR Interaction Manager。留空通常自动找场景里的 XR Interaction Manager。 |
Interaction Layers | 这条射线能和哪些交互层的对象交互。 |
Handedness | 左手 / 右手标记。 |
Attach Transform | 抓取或选中后物体的附着参考点。留空自动生成。 |
Keep Selected Target Valid | 选中后即使射线暂时没继续打到目标,也保持这次选中有效。 |
Disable Visuals When Blocked In Group | 被交互组里其他交互器挡住时关掉视觉反馈。 |
Starting Selected Interactable | 场景一开始默认就被选中的对象。 |
Starting Target Filter / Starting Hover Filters / Starting Select Filters | 启动时附加的目标 / 悬停 / 选中过滤器。 |
Hover Entered / Hover Exited / Select Entered / Select Exited | 事件回调(UnityEvent)。 |
| 属性 | 作用 |
Select Input | 选中输入(通常是扳机 / Grip 的"选中"动作)。 |
Activate Input | 激活输入(次级动作)。 |
Select Action Trigger | 触发模式:状态变化 / 保持按住 / 切换式。 |
Allow Hovered Activate | 未选中时单靠悬停是否触发 Activate。 |
Hide Controller On Select | 选中时是否隐藏控制器模型。 |
射线轨迹
| 属性 | 作用 |
Line Type | 直线 / 抛物线 / 贝塞尔曲线。Starter Assets 通常用直线或曲线。 |
Blend Visual Line Points | 让显示线贴合当前控制器姿态,减少"线尾巴跟不上手"。 |
Max Raycast Distance | 射线最大距离。 |
Ray Origin Transform | 射线从哪里发出。留空用默认附着点 / 控制器位姿。 |
Reference Frame | 曲线射线的参考坐标系(直线模式基本无效)。 |
Velocity / Acceleration / Additional Ground Height / Additional Flight Time / End Point Distance / End Point Height / Control Point Distance / Control Point Height | 抛物线 / 贝塞尔曲线参数。直线模式下不用。 |
Sample Frequency | 曲线采样点数量。 |
Hit Detection Type | Raycast / SphereCast / ConeCast。 |
Sphere Cast Radius | 球投射半径(仅 SphereCast)。 |
Cone Cast Angle | 锥投射角度(仅 ConeCast)。 |
Live Cone Cast Debug Visuals | 显示锥投射调试图。 |
命中过滤
| 属性 | 作用 |
Raycast Mask | 对哪些 Unity Layer 做射线检测。 |
Raycast Trigger Interaction | 是否命中 Trigger Collider。 |
Raycast Snap Volume Interaction | 是否把 Snap Volume 类触发体也算进来。 |
Hit Closest Only | 是否只取最近一个目标(false 允许多目标 hover)。 |
Raycast Mask 是 Unity 物理 Layer;Interaction Layers 是 XR 自己的层。两者不一样:物理打到了但 XR 不选 → 通常是 XR 层不匹配;XR 层对但物理没打中 → 是 Raycast Mask 问题。
悬停自动选中
| 属性 | 作用 |
Hover To Select | 是否只靠悬停一段时间就自动选中。 |
Hover Time To Select | 自动选中所需的悬停时间。 |
Auto Deselect | 选中后是否自动取消。 |
Time To Auto Deselect | 自动取消前的等待时间。 |
UI 交互
| 属性 | 作用 |
Enable UI Interaction | 允许这条射线像鼠标一样点 World Space UI。 |
Block Interactions With Screen Space UI | 被屏幕空间 UI 挡住时是否禁用 3D 交互。 |
Block UI On Interactable Selection | 当已在选中交互物体时,是否阻止点 UI。 |
UI Hover Entered / UI Hover Exited | UI 悬停事件。 |
UI Press Input | 点 UI 按钮时用的输入。 |
UI Scroll Input | 滚动 UI 列表时用的输入。 |
远距操控物体
| 属性 | 作用 |
Manipulate Attach Transform | 允许用摇杆调附着点(沿射线前后移、旋转、缩放)。 |
Use Force Grab | 选中时是否瞬间把物体拉到手边。 |
Rotate Speed / Translate Speed | 旋转 / 推拉速度。 |
Rotate Reference Frame | 旋转参考坐标系。 |
Rotate Mode | 持续旋转 / 摇杆方向匹配朝向。 |
Translate Manipulation Input / Rotate Manipulation Input / Directional Manipulation Input | 操控用的输入。 |
Scale Mode | 缩放模式(关闭 / 一次性切换 / 持续缩放)。 |
Scale Toggle Input / Scale Over Time Input | 缩放触发输入。 |
AR 相关
| 属性 | 作用 |
Enable AR Raycasting | 启用 AR 平面检测射线。 |
Occlude AR Hits With 3D Objects | 3D 物体是否遮挡 AR 命中。 |
Occlude AR Hits With 2D Objects | 2D 物体是否遮挡 AR 命中。 |
Oculus VR Home 场景通常用不到这些。
参考资料