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 Zusammendrücken von Bewegungen ("Luftkippen") 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 Gestikereignisse von HoloLens-Geräten zu nutzen.Touchscreengeräte.
UnityTouchController
umschließt die Unity Touch-Klasse , die physische Touchscreens unterstützt.
Beide Eingabequellen verwenden das Gesten-Einstellungen Profil, um die Touch- und Gestikereignisse von Unity in die Eingabeaktionen von MRTK zu übersetzen. Dieses Profil finden Sie unter dem Eingabesystem-Einstellungen Profil.
Gestikereignisse
Gestenereignisse werden empfangen, indem eine der Gestenhandlerschnittstellen implementiert wird: IMixedRealityGestureHandler
oder IMixedRealityGestureHandler<TYPE>
(siehe Tabelle mit Ereignishandlern).
Siehe Beispielszene für eine Beispielimplementierung eines Gestenereignishandlers.
Bei der Implementierung der generischen Version können die OnGestureCompleted - und OnGestureUpdated-Ereignisse typierte Daten der folgenden Typen empfangen:
Vector2
- 2D-Positionsgeste. Produziert von Touchscreens, um über ihredeltaPosition
Informationen zu informieren.Vector3
- 3D-Positionsgeste. Produziert von HoloLens, um Folgendes zu informieren:cumulativeDelta
eines ManipulationsereignissesnormalizedOffset
eines Navigationsereignisses
Quaternion
- 3D-Drehbewegung. Verfügbar für benutzerdefinierte Eingabequellen, aber derzeit nicht von einem der vorhandenen.MixedRealityPose
- Kombinierte 3D-Position/Drehbewegung. Verfügbar für benutzerdefinierte Eingabequellen, aber derzeit nicht von einem der vorhandenen.
Reihenfolge der Ereignisse
Je nach Benutzereingabe gibt es zwei Prinzipalketten von Ereignissen:
"Hold":
- Halten Sie tippen:
- Manipulation starten
- Halten Sie Tippen über "HoldStartDuration" hinaus:
- Warteschleife starten
- Tippen Sie los:
- abgeschlossener Haltevorgang
- vollständige Manipulation
- Halten Sie tippen:
"Verschieben":
Beispielszene
Die HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes)-Szene zeigt, wie sie das Zeigerergebnis zum Spawnen eines Objekts an der Trefferposition verwenden.
Das GestureTester
Skript (Assets/MRTK/Examples/Demos/HandTracking/Script) ist eine Beispielimplementierung zum Visualisieren von Gestikereignissen über GameObjects. Die Handlerfunktionen ändern die Farbe von Indikatorobjekten und zeigen das letzte aufgezeichnete Ereignis in Textobjekten in der Szene an.