首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么我的统一/MRTK应用程序中的“空中点击”手势在HoloLens1上不起作用?

为什么我的统一/MRTK应用程序中的“空中点击”手势在HoloLens1上不起作用?
EN

Stack Overflow用户
提问于 2019-12-27 07:14:12
回答 1查看 1.3K关注 0票数 3

我有一个统一应用程序,我想与微软混合现实工具包(MRTK)集成。当我将MRTK (v2.1或v2.2)包添加到我的Unity中时,我可以在中模拟"air抽头“手势,然后应用程序注册单击。然而,当我发布应用程序到我的HoloLens1 (或运行全息仿真器在团结),“空中点击”手势不注册点击。

Unity:2018.4.x

MRTK:v2.1 / v2.2

统一场景设置

  • 有一个具有独立输入模块的EventSystem
  • 有一个角色是主摄像机
  • 已进口MRTK
  • 混合现实工具包配置文件设置为DefaultHoloLens1ConfigurationProfile

当我使用上面的设置运行场景时,空气龙头在统一编辑器中注册(通过按空格键+单击来模拟),但是它没有在HoloLens1中注册。

我错过了什么设置吗?也许另一个要添加到我场景中的输入组件呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-08 16:00:33

要响应MRTK中的单击事件,您需要侦听MRTK指针事件,而不是MRE可能侦听的Unity。一个值得注意的好事件是OnPointerClicked事件,当你点击一只手,或者当你点击一个运动控制器,或者你说“选择”这个词时,它就会触发。通常,输入处理程序只在对象上方悬停时才会响应,因此要全局响应这些输入,需要注册为全局输入处理程序。

下面是一个脚本示例,每当单击指针时,该脚本将打印某些文本:

代码语言:javascript
运行
AI代码解释
复制
using Microsoft.MixedReality.Toolkit;
using Microsoft.MixedReality.Toolkit.Input;
using UnityEngine;

public class DetectTapExample : MonoBehaviour
{

    public void Start()
    {
        PointerHandler pointerHandler = gameObject.AddComponent<PointerHandler>();
        pointerHandler.OnPointerClicked.AddListener((evt) => Debug.Log("Tap Detected " + Time.time));
        // Make this a global input handler, otherwise this object will only receive events when it has input focus
        CoreServices.InputSystem.RegisterHandler<IMixedRealityPointerHandler>(pointerHandler);
    }
}

您可以了解更多关于指针在这里这里的MRTK输入系统的信息。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59502650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档