它是什么
InteractionAttachController 是 IInteractionAttachController 的默认实现,用来控制 attach transform 的平移和旋转。
它通常与 NearFarInteractor 配合使用:
- 处理远距离交互
- 被选中对象的稳定
- 把远处物体以加速方式拉向用户
它还提供一种相对于 XROrigin 的平滑选项,让远距离抓取对象在玩家移动时仍保持更一致的平滑效果。
一句话定位:
InteractionAttachController 决定"远距离选中后的物体手感"。
它不决定"谁被选中",只决定"被选中后这个附着点怎么跟手、怎么平滑、怎么推拉、怎么旋转"。
属性
| 属性 | 作用 |
|---|---|
Transform To Follow | 附着锚点要跟随的 transform。通常是控制器或某个稳定锚点。 |
Motion Stabilization Mode | 附着锚点位置与旋转的稳定模式。 |
Position Stabilization | 位置稳定因子;值越大稳定作用越明显。 |
Angle Stabilization | 角度稳定因子;值越大旋转越稳。 |
Smooth Offset | 是否在 XROrigin 空间里对偏移做平滑。适合远距抓物更自然。 |
Smoothing Speed | 平滑速度。值大时更快收敛到稳定状态。 |
Use Distance Based Velocity Scaling | 距离越远,移动速度可越快,避免远距离推拉太肉。 |
Use Manipulation Input | 是否允许用输入轴操控附着点。 |
Manipulation Input | 具体操控用的输入(一般对应摇杆)。 |
X-axis Mode / Y-axis Mode | 左右 / 上下输入是平移还是旋转。 |
Combine Manipulation Axes | 是否允许同时使用两个轴。 |
Translate Speed | 推拉速度。 |
Rotate Speed | 旋转速度。 |
在项目三个场景里的理解
| 场景 | 重要程度 | 原因 |
|---|---|---|
| Home(首页) | 中等 | 主要价值在 UI 射线,不在远距抓物手感 |
| 质量评价 | 高 | 需要选中点云、旋转、缩放、推拉、不抖——这些都靠它 |
| JND | 中高 | 偏向点选与轻量操控时重要度略低于质量评价,但仍关键 |
最值得先调的 6 个参数
Use Manipulation Input:决定摇杆能不能直接操控选中物体Manipulation Input:绑定的输入轴Translate Speed/Rotate Speed:推拉 / 旋转速度Smooth Offset:远距偏移是否平滑Use Distance Based Velocity Scaling:远距离是否放大速度
推荐调参顺序:先决定"要不要让摇杆控制模型",再决定"推拉和旋转速度",最后调"稳不稳、柔不柔"。
一个容易误解的点
官方 near-far-interactor.md 提到:
NearFarInteractor还不支持像XRRayInteractor那样直接使用摇杆控制 attach transform。
但 Starter Assets 3.4.x 工程实践中:
- 摇杆操控能力并没有真的消失
- 它被放到了
InteractionAttachController的输入操控逻辑里
更准确的理解:
新版不是把"操控 attach transform"的能力删掉了,而是把它从XRRayInteractor的心智模型,转移到了InteractionAttachController这一层。
调试建议
如果模型远程选中后体验奇怪:
- 物体突然飞到面前
- 物体选中后抖动
- 推拉太慢
- 旋转太快或太慢
- 松开摇杆后还在"飘"
这些问题大概率都和它的参数设置有关。