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 Profil "Gesteneinstellungen" , um die Touch- und Gestenereignisse von Unity in die Eingabeaktionen von MRTK zu übersetzen. Dieses Profil finden Sie im Profil Eingabesystemeinstellungen .

Gestenprofil

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 ihre deltaPositionzu informieren.
  • Vector3 - Geste der 3D-Position. Produziert von HoloLens, um folgendes zu informieren:
  • 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":

    1. Halten Sie tippen Sie auf:
      • Manipulation starten
    2. Halten Sie das Tippen über "HoldStartDuration" hinaus gedrückt:
      • Start Halten
    3. Tippen Sie auf Release:
      • Vollständiges Halten
      • Vollständige Manipulation
  • "Verschieben":

    1. Halten Sie tippen Sie auf:
      • Manipulation starten
    2. Halten Sie das Tippen über "HoldStartDuration" hinaus gedrückt:
      • Start Halten
    3. Hand über NavigationStartThreshold hinaus bewegen:
      • Abbrechen Halten
      • Navigation starten
    4. Tippen Sie auf Release:
      • Vollständige Manipulation
      • Vollständige Navigation

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.