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:
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:
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:
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.
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.
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 = MixedRealityPose
verwendenIMixedRealityGestureHandler<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.
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.