模态输入处理程序 - IInputClickHandler 和 IInputHandler

Modal Input Handlers - IInputClickHandler and IInputHandler

我有一个简单的全息世界场景,有一点cubecylinder,以及常见的嫌疑人:InputManagerHoloLensCameraCursorWithFeedback.

我写了下面的简单代码(从教程中学习),它让 cube 在你注视它然后隔空点击时消失,然后如果你注视 cylinder 和air-tap,它会让立方体复活。

这一切在 Unity Editor 中都按预期工作,但是当我连接到设备时,重新出现的部分没有响应实际 HoloLens 上的隔空敲击或手指点击。

using UnityEngine;
using HoloToolkit.Unity.InputModule;

public class Hider : MonoBehaviour, IInputClickHandler
{
    public void OnInputClicked(InputClickedEventData eventData)
    {
        gameObject.SetActive(false);
    }
}


using System.Collections.Generic;
using UnityEngine;
using HoloToolkit.Unity.InputModule;

public class ShowAll : MonoBehaviour, IInputHandler
{
    public List<GameObject> _MyGameObjects;


    public void OnInputUp(InputEventData eventData)
    {
        foreach (GameObject go in _MyGameObjects)
        {
            go.SetActive(true);
        }
    }

    public void OnInputDown(InputEventData eventData)
    {
        // Up is sufficient for 'Click' or 'AirTap' action.
    }
}

我错过了什么,我无法让 OnInputUp 在设备上启动?

正在尝试给您一个答案...希望对您有所帮助。 我也是初学者,我没有必要的评论代表,所以在此之后有任何问题都可以问 =)

据我了解,您已将 "Hider" 附加到立方体,将 "ShowAll" 附加到圆柱体。 比你需要在统一编辑器中通过 dragging/dropping 多维数据集填充 public 列表 _MyGameObjects。

由于隐藏部分有效,您也可以将 OnInputClicked 用于显示部分,因为您点击的圆柱体存在(只有立方体 appears/disappears)。

注意:如文档 here 中所述,即使您设置 Active(true) 具有停用父级的 GameObject,您也不会在场景中看到该对象。

再说一次,希望对你有帮助=)
干杯。