我有一个统一应用程序,我想与微软混合现实工具包(MRTK)集成。当我将MRTK (v2.1或v2.2)包添加到我的Unity中时,我可以在中模拟"air抽头“手势,然后应用程序注册单击。然而,当我发布应用程序到我的HoloLens1 (或运行全息仿真器在团结),“空中点击”手势不注册点击。
Unity:2018.4.x
MRTK:v2.1 / v2.2
统一场景设置
DefaultHoloLens1ConfigurationProfile
当我使用上面的设置运行场景时,空气龙头在统一编辑器中注册(通过按空格键+单击来模拟),但是它没有在HoloLens1中注册。
我错过了什么设置吗?也许另一个要添加到我场景中的输入组件呢?
发布于 2020-01-08 16:00:33
要响应MRTK中的单击事件,您需要侦听MRTK指针事件,而不是MRE可能侦听的Unity。一个值得注意的好事件是OnPointerClicked
事件,当你点击一只手,或者当你点击一个运动控制器,或者你说“选择”这个词时,它就会触发。通常,输入处理程序只在对象上方悬停时才会响应,因此要全局响应这些输入,需要注册为全局输入处理程序。
下面是一个脚本示例,每当单击指针时,该脚本将打印某些文本:
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输入系统的信息。
https://stackoverflow.com/questions/59502650
复制相似问题