Freigeben über


Gesten – MRTK2

Gesten sind Eingabeereignisse, die auf menschlichen Händen basieren. Es gibt zwei Arten von Geräten, die Gesteneingabeereignisse in MRTK auslösen:

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.

Gestikprofil

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 ihre deltaPositionInformationen zu informieren.
  • Vector3 - 3D-Positionsgeste. Produziert von HoloLens, um Folgendes zu informieren:
  • 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":

    1. Halten Sie tippen:
      • Manipulation starten
    2. Halten Sie Tippen über "HoldStartDuration" hinaus:
      • Warteschleife starten
    3. Tippen Sie los:
      • abgeschlossener Haltevorgang
      • vollständige Manipulation
  • "Verschieben":

    1. Halten Sie tippen:
      • Manipulation starten
    2. Halten Sie Tippen über "HoldStartDuration" hinaus:
      • Warteschleife starten
    3. Hand über NavigationStartThreshold hinaus verschieben:
      • Abbrechen des Halteraums
      • Navigation starten
    4. Tippen Sie los:
      • vollständige Manipulation
      • vollständige Navigation

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.