【问题标题】:How to get the hand/controller that pressed a button如何获取按下按钮的手/控制器
【发布时间】:2020-05-01 06:19:32
【问题描述】:

我想知道,只需订阅 Interactable OnClick 事件,我是用左手还是右手按下按钮。如果不将此信息与 OnClick 事件一起传递,这是否可行?
在决定接受点击请求之前,该按钮有相当多的逻辑要执行,因此通过全局侦听器复制所有这些是不可行的。
是否可以从其他地方获取 OnClick 信息?是否可以查询潜在的点击来源?

【问题讨论】:

    标签: mrtk


    【解决方案1】:

    在不改变 Interactable 类的情况下,我发现的唯一方法是向 FocusProvider 查询活动指针,它一定是按下按钮的那个(在我的例子中): https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/Pointers.html

    【讨论】:

      【解决方案2】:

      https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/Controllers.html

      设置您的控制器,记下轴名称,在代码中您可以在任何 GameObject 的更新循环中执行类似的操作:

      if (Input.GetAxis("Axis1D.PrimaryHandButton") > 0.5f) {
      // this axis (button) is pressed do something
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多