Spatial XR 开发者社区官网:https://www.spatialxr.tech/
注:
此系列教程已过时
新版系列教程专栏:Unity XR Interaction Toolkit 系列教程(SDK 版本 3.0 以上)
XR Direct Interactor 脚本和 XR Ray Interactor 脚本中有个名叫 Select Action Trigger 的参数。
它决定了 XR Controller 的 Select Action 要如何被触发。
每个参数的意思可以参考官方文档:https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.3/manual/xr-direct-interactor.html
但是官方的解释可能有些难懂,我这里就配合图文,讲一下我个人的理解。
首先讲一下 Toggle 和 Sticky,这两个相对而言比较好理解。我们就以抓取这个交互为例,抓取的 Select Action 绑定的是 “按下手柄抓取键” 这个动作。
如果选择了 Toggle,靠近物体按下手柄抓取键,物体会被抓在手上,但是这时候即使松开了抓取键,物体还是会被抓在手上,只有等到下一次按下抓取键,物体才会被释放。如果选择了 Sticky,靠近物体按下手柄抓取键,物体会被抓在手上,即使松开了抓取键,物体还是会被抓在手上,但是只有等到下一次按下抓取键并松开抓取键,物体才会被释放。
Toggle:
Sticky:
接下来说一说 State 和 State Change 的区别。官方的解释看起来可能不大好理解。从实际使用体验上来看,在可抓取物体的 Select Mode 选择了 Single, 也就是只允许单手抓取的前提下,对这个物体进行左右手切换抓取,就能看出显著的区别。
如果选择了 State,会有一只手无法接管另一只手的抓取权,可能出现在左手,也可能出现在右手。举个例子,可能右手柄按着抓取键将物体抓在手中的时候,左手柄按下抓取键无法接管抓取权,也就是无法切换到左手进行抓取,这种情况下只有先松开右手手柄抓取键才会进行切换抓取。
如果选择了 State Change,则可以随意切换抓取。因为推荐大家在抓取功能上使用 State Change。
State:
State Change: