模态输入处理程序 - IInputClickHandler 和 IInputHandler
Modal Input Handlers - IInputClickHandler and IInputHandler
我有一个简单的全息世界场景,有一点cube
和cylinder
,以及常见的嫌疑人:InputManager
、HoloLensCamera
和CursorWithFeedback
.
我写了下面的简单代码(从教程中学习),它让 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,您也不会在场景中看到该对象。
再说一次,希望对你有帮助=)
干杯。
我有一个简单的全息世界场景,有一点cube
和cylinder
,以及常见的嫌疑人:InputManager
、HoloLensCamera
和CursorWithFeedback
.
我写了下面的简单代码(从教程中学习),它让 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,您也不会在场景中看到该对象。
再说一次,希望对你有帮助=)
干杯。