Freigeben über


Gesten — MRTK2

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

Beide Eingabequellen verwenden das Profil Gesteneinstellungen , um die Touch- und Gestikereignisse 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 der Ereignishandler).

Eine Beispielimplementierung eines Gestenereignishandlers finden Sie unter Beispielszene .

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

  • Vector2 - 2D-Positionsbewegung. Wird von Touchscreens erstellt, um über ihre deltaPositionzu informieren.
  • Vector3 - Geste der 3D-Position. Produziert von HoloLens zur Information über:
  • Quaternion – 3D-Drehbewegung. 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 Hauptketten von Ereignissen:

  • "Hold":

    1. Halten Sie tippen:
      • Manipulation starten
    2. Halten Sie tippen Sie über HoldStartDuration hinaus:
      • Start Halten
    3. Tippen Sie auf "Release":
      • Vollständiges Halten
      • Bearbeitung abschließen
  • "Move":

    1. Halten Sie tippen:
      • Manipulation starten
    2. Halten Sie tippen Sie über HoldStartDuration hinaus:
      • Start Halten
    3. Hand über NavigationStartThreshold hinaus bewegen:
      • Cancel Hold
      • Navigation starten
    4. Tippen Sie auf "Release":
      • Bearbeitung abschließen
      • Vollständige Navigation

Beispielszene

Die HandInteractionGestureEventsExample-Szene (Assets/MRTK/Examples/Demos/HandTracking/Scenes) zeigt, wie sie den Zeiger Result verwenden, um ein Objekt an der Trefferposition zu erzeugen.

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.