Eingabeaktionen – MRTK2

Eingabeaktionen sind Abstraktionen über rohe Eingaben, die dazu beitragen, Anwendungslogik aus den spezifischen Eingabequellen zu isolieren, die eine Eingabe erzeugen. Es kann z. B. nützlich sein, eine Auswahlaktion zu definieren und der linken Maustaste, einer Schaltfläche in einem Gamepad und einem Trigger in einem 6 DOF-Controller zuzuordnen. Anschließend können Sie ihre Anwendungslogik für Auswahleingabeaktionsereignisse hören, anstatt alle unterschiedlichen Eingaben zu beachten, die sie erzeugen können.

Erstellen einer Eingabeaktion

Eingabeaktionen werden im Eingabeaktionenprofil im Eingabesystemprofil in der Komponente Mixed Reality Toolkit konfiguriert, die einen Namen für die Aktion und den Typ der Eingaben (Achseneinschränkung) angeben, der zugeordnet werden kann:

Input Action

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

Achseneinschränkung BESCHREIBUNG
Digital Ein-/Aus-Eingabe wie eine binärschalte Schaltfläche in einem Gamepad oder Maus.
Einzelne Achse Einzelne Achsen analoge Eingaben wie ein analoger Trigger in einem Gamepad.
Dual-Achse Dual-Achsen-analoge Eingabe wie ein Daumenstick.
Sechs Dof 3D-Pose mit Übersetzung und Drehung wie die von 6 DOF-Controllern produzierte.

Sie finden die vollständige Liste in AxisType.

Zuordnung von Eingaben zu Aktionen

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

Controllereingabe

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

Input maping profile

Wählen Sie die Option aus, die Sie konfigurieren möchten, und ein Dialogfeld wird mit allen Controllereingaben angezeigt, sodass Sie eine Aktion für jede dieser Aktionen festlegen können:

Input Action Assignment

Spracheingabe

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

Speech Commands profile

Gesteneingabe

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

Gesture profile

Behandeln von Eingabeaktionen

Warnung

Derzeit können nur Eingabeaktionen des digitalen Typs mithilfe der in diesem Abschnitt beschriebenen Methoden behandelt werden. Für andere Aktionstypen müssen Sie stattdessen direkt die Ereignisse für die entsprechenden Eingaben behandeln. Um beispielsweise eine 6 DOF-Aktion zu behandeln, die den Controllereingaben zugeordnet ist, müssen Sie mit T = MixedRealityPoseverwendenIMixedRealityGestureHandler<T>.

Die einfachste Möglichkeit zum Behandeln von Eingabeaktionen besteht darin, das InputActionHandler Skript zu verwenden. Dadurch können Sie die Aktion definieren, die Sie hören und auf Aktionen reagieren möchten, die gestartet und beendet werden, indem Sie Unity-Ereignisse verwenden.

Acton Handler

Wenn Sie mehr Kontrolle wünschen, können Sie die IMixedRealityInputActionHandler Schnittstelle direkt in Ihrem Skript implementieren. Weitere Details zur Ereignisbehandlung über Handlerschnittstellen finden Sie im Abschnitt "Eingabeereignisse ".

Beispiele

Sehen Sie sich eine Beispielszene an, in der gezeigt MRTK/Examples/Demos/Input/Scenes/InputActions wird, wie Sie eine Aktion erstellen, sie controllern, Sprach- und Gesteneingaben zuordnen und verwenden, um ein Objekt auf Befehl zu drehen.

Input action example