Gesten – MRTK2
Gesten sind Eingabeereignisse, die auf menschlichen Händen basieren. Es gibt zwei Arten von Geräten, die Gesteneingabeereignisse in MRTK auslösen:
Windows Mixed Reality Geräte wie HoloLens. Dies beschreibt Anheftbewegungen ("Luft tippen") und Tippen-und-Halten-Gesten.
Weitere Informationen zu HoloLens-Gesten finden Sie in der Dokumentation zu Windows Mixed Reality Gesten.
WindowsMixedRealityDeviceManager
umschließt die Unity XR. WSA. Input.GestureRecognizer , um die Gestenereignisse von Unity von HoloLens-Geräten zu nutzen.Touchscreengeräte.
UnityTouchController
umschließt die Unity Touch-Klasse , die physische Touchscreens unterstützt.
Beide Eingabequellen verwenden das Profil "Gesteneinstellungen" , um die Touch- und Gestenereignisse von Unity in die Eingabeaktionen von MRTK zu übersetzen. Dieses Profil finden Sie im Profil Eingabesystemeinstellungen .
Gestikereignisse
Gestenereignisse werden empfangen, indem eine der Gestenhandlerschnittstellen implementiert wird: IMixedRealityGestureHandler
oder IMixedRealityGestureHandler<TYPE>
(siehe Tabelle mit Ereignishandlern).
Eine Beispielimplementierung eines Gestenereignishandlers finden Sie unter Beispielszene .
Beim Implementieren der generischen Version können die Ereignisse OnGestureCompleted und OnGestureUpdated typisierte Daten der folgenden Typen empfangen:
Vector2
- Geste der 2D-Position. Produziert von Touchscreens, um über ihredeltaPosition
zu informieren.Vector3
- Geste der 3D-Position. Produziert von HoloLens, um folgendes zu informieren:cumulativeDelta
eines ManipulationsereignissesnormalizedOffset
eines Navigationsereignisses
Quaternion
- 3D-Drehgeste. Verfügbar für benutzerdefinierte Eingabequellen, aber derzeit nicht von einer der vorhandenen.MixedRealityPose
- Kombinierte 3D-Position/Drehbewegung. Verfügbar für benutzerdefinierte Eingabequellen, aber derzeit nicht von einer der vorhandenen.
Reihenfolge der Ereignisse
Je nach Benutzereingabe gibt es zwei Prinzipalketten von Ereignissen:
"Halten":
- Halten Sie tippen Sie auf:
- Manipulation starten
- Halten Sie das Tippen über "HoldStartDuration" hinaus gedrückt:
- Start Halten
- Tippen Sie auf Release:
- Vollständiges Halten
- Vollständige Manipulation
- Halten Sie tippen Sie auf:
"Verschieben":
- Halten Sie tippen Sie auf:
- Manipulation starten
- Halten Sie das Tippen über "HoldStartDuration" hinaus gedrückt:
- Start Halten
- Hand über NavigationStartThreshold hinaus bewegen:
- Abbrechen Halten
- Navigation starten
- Tippen Sie auf Release:
- Vollständige Manipulation
- Vollständige Navigation
- Halten Sie tippen Sie auf:
Beispielszene
Die HandInteractionGestureEventsExample-Szene (Assets/MRTK/Examples/Demos/HandTracking/Scenes) zeigt, wie sie das Zeigerergebnis verwenden, um ein Objekt an der Trefferposition zu spawnen.
Das GestureTester
Skript (Assets/MRTK/Examples/Demos/HandTracking/Script) ist eine Beispielimplementierung zum Visualisieren von Gestenereignissen über GameObjects. Die Handlerfunktionen ändern die Farbe von Indikatorobjekten und zeigen das zuletzt aufgezeichnete Ereignis in Textobjekten in der Szene an.