Unity GestureRecognizer ManipulationStarted 和 -updated 不起作用
Unity GestureRecognizer ManipulationStarted and -updated are not working
请看下面的代码,如果我在 Unity for Hololens 中将此结构用于点击、按住和导航,它会按预期工作。但是 Manipulation 甚至没有被调用。我查看了 Holokit,但我无法理解 holoKit 如何触发它们。我也不想在我简单的轻型项目中导入这个沉重的 Holokit。非常感谢,任何人都可以告诉我如何使用简单的手势识别器操作委托。
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.XR.WSA.Input;
namespace Assets.Scripts
{
public class GestureRecognizerManager : MonoBehaviour
{
private GestureRecognizer _recognizer;
private void Awake()
{
_recognizer = new GestureRecognizer();
_recognizer.ManipulationStarted += RecognizerOnManipulationStarted;
_recognizer.ManipulationUpdated += RecognizerOnManipulationUpdated;
_recognizer.StartCapturingGestures();
}
private void RecognizerOnManipulationUpdated(ManipulationUpdatedEventArgs obj)
{
Debug.Log("D");
}
private void RecognizerOnManipulationStarted(ManipulationStartedEventArgs obj)
{
Debug.Log("K");
}
private void OnApplicationQuit()
{
_recognizer.ManipulationStarted -= RecognizerOnManipulationStarted;
_recognizer.ManipulationUpdated -= RecognizerOnManipulationUpdated;
_recognizer.StopCapturingGestures();
_recognizer.Dispose();
}
}
}
好的,在初始化阶段通过这行代码工作:
_recognizer.SetRecognizableGestures(GestureSettings.ManipulationTranslate);
请看下面的代码,如果我在 Unity for Hololens 中将此结构用于点击、按住和导航,它会按预期工作。但是 Manipulation 甚至没有被调用。我查看了 Holokit,但我无法理解 holoKit 如何触发它们。我也不想在我简单的轻型项目中导入这个沉重的 Holokit。非常感谢,任何人都可以告诉我如何使用简单的手势识别器操作委托。
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.XR.WSA.Input;
namespace Assets.Scripts
{
public class GestureRecognizerManager : MonoBehaviour
{
private GestureRecognizer _recognizer;
private void Awake()
{
_recognizer = new GestureRecognizer();
_recognizer.ManipulationStarted += RecognizerOnManipulationStarted;
_recognizer.ManipulationUpdated += RecognizerOnManipulationUpdated;
_recognizer.StartCapturingGestures();
}
private void RecognizerOnManipulationUpdated(ManipulationUpdatedEventArgs obj)
{
Debug.Log("D");
}
private void RecognizerOnManipulationStarted(ManipulationStartedEventArgs obj)
{
Debug.Log("K");
}
private void OnApplicationQuit()
{
_recognizer.ManipulationStarted -= RecognizerOnManipulationStarted;
_recognizer.ManipulationUpdated -= RecognizerOnManipulationUpdated;
_recognizer.StopCapturingGestures();
_recognizer.Dispose();
}
}
}
好的,在初始化阶段通过这行代码工作:
_recognizer.SetRecognizableGestures(GestureSettings.ManipulationTranslate);