如何将 HoloLens 2 的 MRTK v2 项目中的 hand-rays 更改为抛物线而不是线性?

How can I change hand-rays in my MRTK v2 project for HoloLens 2 to parabolic instead of linear?

我的 HoloLens 2 项目的内容是这样安排的,我无法使用现有的 hand-rays 定位对撞机。我曾经使用 head-gaze 定位我的内容,但是 hand-rays 在 body 上较低,因此更难以达到我想要 select 的内容。我相信我会受益于抛物线 selection 射线,类似于在混合现实中传送以到达参与者上方的表面时使用的那些。

与我的内容交互的主要方法是通过抛物线。在我的应用程序中的某些实例中,我可能会更改模式以从近处或远处关注菜单系统,而当我远离时,我想更改为线性射线。因此,最好能够通过代码更改曝光的光线类型。

我的项目正在使用 MRTK v2,并且标准线性 hand-rays 正在运行。

我希望能够更改 Unity 检查器中使用的光线类型,并能够在 run-time 期间通过代码更改样式。我想控制光线的弧度,因为我的内容的比例可能会影响对不同弧度和 min/max 距离的需求。

您可以修改 DefaultControllerPointer 预制件以使用物理抛物线数据提供者而不是贝塞尔线数据提供者。这将使指针使用的线扭曲得更像抛物线。

之前:

之后:

请注意,我删除了粉色组件并添加了绿色组件。

您还需要将指针的线投射分辨率从 2 增加到更大的值,这意味着用于查询您击中的射线将具有更高的分辨率:

并且您可能想要增加 MR 线渲染器本身的分辨率。

抛物线指针演示: