Eingabeaktionen – MRTK2

Eingabeaktionen sind Abstraktionen gegenüber Roheingaben, die dazu beitragen sollen, Anwendungslogik von den spezifischen Eingabequellen zu isolieren, die eine Eingabe erzeugen. Es kann z. B. hilfreich sein, eine Select-Aktion zu definieren und sie der linken Maustaste, einer Schaltfläche in einem Gamepad und einem Trigger in einem 6-DOF-Controller zuzuordnen. Sie können ihre Anwendungslogik dann auf Eingabeaktionsereignisse auswählen lauschen lassen, anstatt alle verschiedenen Eingaben kennen zu müssen, die sie erzeugen können.

Erstellen einer Eingabeaktion

Eingabeaktionen werden im Eingabeaktionenprofil innerhalb des Eingabesystemprofils in der Komponente Mixed Reality Toolkit konfiguriert, wobei ein Name für die Aktion und der Typ der Eingaben (Achseneinschränkung) angegeben werden, denen sie zugeordnet werden kann:

Eingabeaktion

Dies sind die am häufigsten verwendeten Werte für Achseneinschränkung:

Achseneinschränkung BESCHREIBUNG
Digital Ein-/Aus-Eingabe wie eine binäre Schaltfläche in einem Gamepad oder einer Maus.
Einzelne Achse Analogeingang mit einer Achse wie ein analoger Trigger in einem Gamepad.
Duale Achse Analogeingang mit zwei Achsen wie ein Fingerabdruck.
Sechs Dof 3D-Pose mit Übersetzung und Drehung wie die von 6 DOF-Controllern erzeugte.

Die vollständige Liste finden Sie unter AxisType.

Zuordnen von Eingaben zu Aktionen

Die Art und Weise, wie Sie eine Eingabe und aktion zuordnen, hängt vom Typ der Eingabequelle ab:

Controllereingabe

Navigieren Sie unter dem Eingabesystemprofil zum Controllereingabezuordnungsprofil. Dort finden Sie eine Liste aller unterstützten Controller:

Eingabezuordnungsprofil

Wählen Sie die zu konfigurierende Option aus, und es wird ein Dialogfeld mit allen Controllereingaben angezeigt, sodass Sie für jede von ihnen eine Aktion festlegen können:

Eingabeaktionszuweisung

Spracheingabe

Im Sprachbefehlsprofil finden Sie unter Eingabesystemprofil die Liste der derzeit definierten Sprachbefehle. Um eine davon einer Aktion zuzuordnen, wählen Sie sie einfach in der Dropdownliste Aktion aus.

Sprachbefehlsprofil

Gesteneingabe

Das Gestenprofil unter dem Eingabesystemprofil enthält alle definierten Gesten. Sie können sie einer Aktion zuordnen, indem Sie sie in der Dropdownliste Aktion auswählen.

Gestenprofil

Behandeln von Eingabeaktionen

Warnung

Derzeit können nur Eingabeaktionen vom Typ Digital mithilfe der in diesem Abschnitt beschriebenen Methoden verarbeitet werden. Bei anderen Aktionstypen müssen Sie stattdessen die Ereignisse für die entsprechenden Eingaben direkt behandeln. Um beispielsweise eine 6-DOF-Aktion zu behandeln, die Controllereingaben zugeordnet ist, müssen Sie mit T = MixedRealityPoseverwendenIMixedRealityGestureHandler<T>.

Die einfachste Möglichkeit zum Verarbeiten von Eingabeaktionen ist die Verwendung des InputActionHandler Skripts. Auf diese Weise können Sie die Aktion definieren, auf die Sie mit Unity-Ereignissen lauschen und darauf reagieren möchten.

Acton-Handler

Wenn Sie mehr Kontrolle benötigen, können Sie die IMixedRealityInputActionHandler Schnittstelle direkt in Ihrem Skript implementieren. Weitere Informationen zur Ereignisbehandlung über Handlerschnittstellen finden Sie im Abschnitt Eingabeereignisse .

Beispiele

In MRTK/Examples/Demos/Input/Scenes/InputActions einer Beispielszene wird gezeigt, wie Sie eine Aktion erstellen, sie Controllern, Sprach- und Gesteneingaben zuordnen und verwenden, um ein Objekt auf Befehl zu drehen.

Beispiel für Eingabeaktion