如何使用MRTK v2 C#输入InputEvent

时间:2019-04-12 12:00:20

标签: unity3d mrtk

我的项目中有HoloToolkit-Unity-2017.4.3.0-Refresh,但是内置脚本中的一些已经过时了。我解决了这个问题,最近添加了一个OnInputClicked方法,但是在尝试构建此方法时,其他脚本中存在太多错误,因此我改用了MRTK v2。

我环顾了一下,但似乎在任何MRTK v2s文档中都找不到有关如何为HoloLens设备创建click事件的教程。 IInputHandler不再位于MRTK中,但是IMixedRealityInputHandler的工作原理相同吗?

下面的代码是clickEvent在HoloToolkit中的外观。 MRTK v2是否仍然相同?

public void OnInputClicked(InputEventData eventData)
{ 
   ...
}

这是否足以触发其他方法,还是我必须在void Update()-ish中添加click事件?另外一个-是否足以通过hololens触发点击事件?

谢谢!

2 个答案:

答案 0 :(得分:1)

我调查了一下,然后将其更改为(?)

public class NewBehaviourScript : MonoBehaviour, IMixedRealityInputHandler
{
    public void OnInputUp(InputEventData eventData)
    {

    }

    public void OnInputDown(InputEventData eventData)
    {

    }
}

或者也许您更想要IMixedRealityPointerHandler

public class NewBehaviourScript : MonoBehaviour, IMixedRealityPointerHandler
{
    public void OnPointerUp(MixedRealityPointerEventData eventData)
    {

    }

    public void OnPointerDown(MixedRealityPointerEventData eventData)
    {

    }

    public void OnPointerClicked(MixedRealityPointerEventData eventData)
    {

    }
}

并且是肯定的,afaik应该足以调用那些方法(当然,它还需要在GameObject或其子级上的某个位置使用Collider)。

Here,您可以找到有关MRTK 2中可用的输入以及如何进行设置的完整概述。

答案 1 :(得分:1)

文档中有《 HTK到MRTK的移植指南》:https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/HTKToMRTKPortingGuide.html#interface-and-event-mappings

其中包含一个接口映射表,该表应有助于将预制件和接口从HTK迁移到MRTK v2。

就此特定情况而言,IMixedRealityPointerHandler确实是您要寻找的,如果您需要知道何时单击了特定按钮(分配给特定指针)。如果您只是想知道何时释放任何按钮,IMixedRealityInputHandler可能是您的更好选择。