/// <summary> /// Constructs a hand tracker object. /// </summary> /// <param name="handedness">Which hand to use.</param> public HandLocator(TrackerHandedness handedness) { _handedness = handedness; #if UNITY_WSA InteractionManager.InteractionSourceUpdated += InteractionSourceUpdated; #endif }
public InputHandler(TrackerConfig tracker, TrackerHandedness handedness) { _tracker = tracker; _handedness = handedness; #if UNITY_WSA _gestureRecognizer = new GestureRecognizer(); GestureSettings gestureMask = GetGestureMask(tracker); // Using gestures if (gestureMask != GestureSettings.None) { // Add tap to recognisor if (gestureMask.HasFlag(GestureSettings.Tap) || gestureMask.HasFlag(GestureSettings.DoubleTap)) { _gestureRecognizer.Tapped += GestureTapped; } // Add hold to recognisor if (gestureMask.HasFlag(GestureSettings.Hold)) { _gestureRecognizer.HoldStarted += GestureHoldStarted; _gestureRecognizer.HoldCompleted += GestureHoldCompleted; _gestureRecognizer.HoldCanceled += GestureHoldCanceled; } // Add manipulation to recognisor if (gestureMask.HasFlag(GestureSettings.ManipulationTranslate)) { _gestureRecognizer.ManipulationStarted += GestureManipulationStarted; _gestureRecognizer.ManipulationCompleted += GestureManipulationCompleted; _gestureRecognizer.ManipulationCanceled += GestureManipulationCanceled; _gestureRecognizer.ManipulationUpdated += GestureManipulationUpdated;; } // Add navigation to recognisor if (gestureMask.HasFlag(GestureSettings.NavigationX) || gestureMask.HasFlag(GestureSettings.NavigationY) || gestureMask.HasFlag(GestureSettings.NavigationZ)) { _gestureRecognizer.NavigationStarted += GestureNavigationStarted; _gestureRecognizer.NavigationCompleted += GestureNavigationCompleted; _gestureRecognizer.NavigationCanceled += GestureNavigationCanceled; _gestureRecognizer.NavigationUpdated += GestureNavigationUpdated;; } _gestureRecognizer.SetRecognizableGestures(gestureMask); _gestureRecognizer.StartCapturingGestures(); } #endif // Using speech recognition _speechRecognizer = new DictationRecognizer(); _speechRecognizer.DictationResult += SpeechRecognition; }