Indataåtgärder – MRTK2
Indataåtgärder är abstraktioner över råa indata som är avsedda att hjälpa till att isolera programlogik från specifika indatakällor som producerar indata. Det kan till exempel vara användbart att definiera en Select-åtgärd och mappa den till den vänstra musknappen, en knapp i en spelplatta och en utlösare i en 6 DOF-kontrollant. Du kan sedan låta din programlogik lyssna efter Select input action events ( Välj indataåtgärdshändelser) i stället för att behöva vara medveten om alla olika indata som kan generera den.
Skapa en indataåtgärd
Indataåtgärder konfigureras i indataåtgärdsprofilen, i indatasystemprofilen i komponenten Mixed Reality Toolkit, och anger ett namn för åtgärden och vilken typ av indata (axelbegränsning) som den kan mappas till:

Det här är de vanligaste värdena för axelbegränsning:
Axelbegränsning | Description |
---|---|
Digital | På/av-indata som en binär knapp i en spelplatta eller mus. |
Enskild axel | Analoga indata med en axel som en analog utlösare i en spelplatta. |
Dubbel axel | Analoga indata med dubbla axlar som en tumsticka. |
Sex dof | 3D-pose 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:
Styrenhetsindata
Gå till profilen för mappning av styrenhetsindata under indatasystemprofilen. Där hittar du en lista över alla kontrollanter som stöds:

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

Talinmatning
I talkommandoprofilen under Indatasystemprofilen 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 .

Gestinmatning
Gestprofilen 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 .

Hantera indataåtgärder
Varning
För närvarande kan endast indataåtgärder av digital typ hanteras med hjälp av de metoder som beskrivs i det här avsnittet. För andra åtgärdstyper måste du hantera händelserna för motsvarande indata direkt i stället. Om du till exempel vill hantera en 6 DOF-åtgärd som mappats till kontrollantindata måste du använda IMixedRealityGestureHandler<T>
med T = MixedRealityPose
.
Det enklaste sättet att hantera indataåtgärder är att använda skriptet InputActionHandler
. På så sätt kan du definiera den åtgärd som du vill lyssna på och reagera på händelser som startats och avslutats med Unity Events.

Om du vill ha mer kontroll kan du implementera IMixedRealityInputActionHandler
gränssnittet direkt i skriptet. Mer information om händelsehantering via hanteringsgränssnitt finns i avsnittet Indatahändelser .
Exempel
Se MRTK/Examples/Demos/Input/Scenes/InputActions
en exempelscen som visar hur du skapar en åtgärd, mappar den till kontrollant, tal och gestindata och använder den för att rotera ett objekt på kommandot.
