Indataåtgärder

Indataåtgärder är abstraktioner över råa indata som är avsedda att isolera programlogiken från de specifika indatakällor som producerar indata. Det kan till exempel vara användbart att definiera en Select-åtgärd och mappa den till vänster musknapp, en knapp i en spelpad och en utlösare i en 6 DOF-styrenhet. Du kan sedan få din programlogik att lyssna efter Välj händelser för indataåtgärder i stället för att behöva vara medveten om alla olika indata som kan producera den.

Skapa en indataåtgärd

Indataåtgärder konfigureras i indataåtgärdsprofilen . I indatasystemprofilen i komponenten Mixed Reality Toolkit anger du ett namn för åtgärden och typen av indata (axelbegränsning) som den kan mappas till:

Input Action

Det här är de mest använda värdena för axelbegränsning:

Axelbegränsning Description
Digital På-/av-indata som en binär knapp i en spelpad eller mus.
Enskild axel En axel inmatade indata som en analog utlösare i en spelpad.
Dubbel axel Indata med dubbel axel inmatade som en tumsticka.
Sex dof 3D-attityd med översättning och rotation som den som produceras av 6 DOF-styrenheter.

Du hittar den fullständiga listan i AxisType .

Mappa indata till åtgärder

Hur du mappar indata till och åtgärd beror på typen av indatakälla:

Controller-indata

Gå till indatamappningsprofilen för kontrollanten under indatasystemprofilen. Där hittar du en lista över alla styrenheter som stöds:

Input maping profile

Välj den som du vill konfigurera så visas ett dialogfönster med alla kontrollantindata, så att du kan ange en åtgärd för var och en av dem:

Input Action Assignment

Talinmatning

I talkommandoprofilen under Indatasystemprofil hittar du listan över för närvarande definierade talkommandon. Om du vill mappa en av dem till en åtgärd väljer du den bara i listrutan Åtgärd.

Speech Commands profile

Gestinmatning

Gesterprofilen, under indatasystemprofilen, innehåller alla definierade gester. Du kan mappa var och en av dem till en åtgärd genom att välja den i listrutan Åtgärd.

Gesture profile

Hantera indataåtgärder

Varning

För närvarande kan endast indataåtgärder av digital typ hanteras med hjälp av metoderna som beskrivs i det här avsnittet. För andra åtgärdstyper måste du hantera direkt händelserna för motsvarande indata i stället. Om du till exempel vill hantera en 6 DOF-åtgärd som mappas till kontrollantens indata måste du använda IMixedRealityGestureHandler<T> med T = MixedRealityPose .

Det enklaste sättet att hantera indataåtgärder är att använda InputActionHandler skriptet. På så sätt kan du definiera den åtgärd som du vill lyssna på och reagera på åtgärdsstartade och avslutade händelser med hjälp av Unity-händelser.

Acton Handler

Om du vill ha mer kontroll kan du implementera IMixedRealityInputActionHandler gränssnittet direkt i skriptet. Mer information om händelsehantering via hanterargränssnitt finns i avsnittet Indatahändelser.

Exempel

En exempelscen som visar hur du skapar en åtgärd, mappar den till kontrollant, tal- och gestinmatningar och använder den för att MRTK/Examples/Demos/Input/Scenes/InputActions rotera ett objekt i kommandot.

Input action example