如何在 C# 中识别 HoloLens 手势?



所以最近几天我在互联网上搜索了如何在C#/Unity中识别HoloLens手势(例如普通的点击手势(。

例如,我尝试了手势识别器,但它似乎已经过时了,我无法让它工作。

我通过在Unity(混合现实工具包(中模拟并按住"空格键"以查看手部并单击鼠标左键来测试它。

这样,我就可以像正常使用 HoloLens 一样与对象进行交互,但我无法让手势识别器正常工作。

任何代码片段都会有所帮助。我只是尝试记录(或稍后调用方法(,如果识别了一次点击或双击。

我认为这里有一些作品在起作用。 首先,混合现实工具包的模拟手不会通过常规手势识别器发送事件,这可以解释为什么你在那里看不到事件。不过,它们确实通过 MRTK 的输入系统发送输入和手势事件。您可以通过以下方式收听这些事件:

public class TapListener : MonoBehaviour, IMixedRealityGestureHandler
{
[SerializeField]
private MixedRealityInputAction selectAction; // You'll need to set this in the Inspector to Select
private void OnEnable()
{
CoreServices.InputSystem?.RegisterHandler<IMixedRealityGestureHandler>(this);
}
private void OnDisable()
{
CoreService.InputSystem?.UnregisterHandler<IMixedRealityGestureHandler>(this);
}
public void OnGestureCompleted(InputEventData eventData)
{
if (eventData.MixedRealityInputAction == selectAction)
{
Debug.Log("Tap!");
}
}
public void OnGestureStarted(InputEventData eventData) { }
public void OnGestureUpdated(InputEventData eventData) { }
public void OnGestureCanceled(InputEventData eventData) { }
}

其次,MRTK 当前不支持双击,但如果可以在存储库上提交功能请求以便记录它,那就太好了。

最新更新