Gesten

Gesten sind Eingabeereignisse, die auf menschlichen Händen basieren. Es gibt zwei Arten von Geräten, die Gesteneingabeereignisse im MRTK erstellen:

Beide Eingabequellen verwenden das Gesten Einstellungen profil, um die Touch- bzw. Gestenereignisse von Unity in die Eingabeaktionen des MRTK zu übersetzen. Dieses Profil finden Sie unter dem Eingabesystem-Einstellungen Profil.

Gesture Profile

Gestikereignisse

Gestenereignisse werden empfangen, indem eine der Gestenhandlerschnittstellen implementiert IMixedRealityGestureHandler wird: oder IMixedRealityGestureHandler<TYPE> (siehe Tabelle der Ereignishandler).

Eine Beispielimplementierung eines Gestenereignishandlers finden Sie unter Beispielszene.

Bei der Implementierung der generischen Version können die Ereignisse OnGestureCompleted und OnGestureUpdated typierte Daten der folgenden Typen empfangen:

  • Vector2 – 2D-Positionsgeste. Wird von Touchscreens erstellt, um über ihre zu deltaPosition informieren.
  • Vector3 – 3D-Positionsgeste. Wird von HoloLens erstellt, um Über:
  • Quaternion – 3D-Drehbewegung. Verfügbar für benutzerdefinierte Eingabequellen, aber derzeit nicht von einer der vorhandenen Erstellt.
  • MixedRealityPose – Kombinierte 3D-Position/Drehbewegung. Verfügbar für benutzerdefinierte Eingabequellen, aber derzeit nicht von einer der vorhandenen Erstellt.

Reihenfolge der Ereignisse

Je nach Benutzereingabe gibt es zwei Hauptketten von Ereignissen:

  • "Hold":

    1. Tippen Sie auf halten:
      • Manipulation starten
    2. Tippen Sie über HoldStartDuration hinaus:
      • Start hold
    3. Tippen Sie auf das Release:
      • vollständige Zurückhalten
      • vollständige Manipulation
  • "Move":

    1. Tippen Sie auf halten:
      • Manipulation starten
    2. Tippen Sie über HoldStartDuration hinaus:
      • Start hold
    3. Bewegen Sie hand über NavigationStartThresholdhinaus:
      • Abbrechen von "Hold"
      • Navigation starten
    4. Tippen Sie auf das Release:
      • vollständige Manipulation
      • vollständige Navigation

Beispielszene

Die HandInteractionGestureEventsExample-Szene (Assets/MRTK/Examples/Demos/HandTracking/Scenes) zeigt, wie das Zeigerergebnis verwendet wird, um ein Objekt an der Trefferposition zu erstellen.

Das Skript (Assets/MRTK/Examples/Demos/HandTracking/Script) ist eine Beispielimplementierung zum Visualisieren von Gestenereignissen über GestureTester GameObjects. Die Handlerfunktionen ändern die Farbe von Indikatorobjekten und zeigen das zuletzt aufgezeichnete Ereignis in Textobjekten in der Szene an.