Ações de entrada – MRTK2

As Ações de Entrada são abstrações sobre entradas brutas destinadas a ajudar a isolar a lógica do aplicativo das fontes de entrada específicas que produzem uma entrada. Pode ser útil, por exemplo, definir uma ação Selecionar e mapeá-la para o botão esquerdo do mouse, um botão em um gamepad e um gatilho em um controlador DOF 6. Em seguida, você pode fazer com que a lógica do aplicativo ouça os eventos de ação de entrada Selecionar , em vez de ter que estar ciente de todas as diferentes entradas que podem produzi-lo.

Criando uma ação de entrada

As ações de entrada são configuradas no Perfil de Ações de Entrada, dentro do Perfil do Sistema de Entrada no componente Realidade Misturada Toolkit, especificando um nome para a ação e o tipo de entradas (Restrição do Eixo) para o qual ela pode ser mapeada para:

Input Action

Esses são os valores mais comumente usados para Restrição de Eixo:

Restrição do eixo Descrição
Digital Entrada ativada/desativada, como um botão binário em um gamepad ou mouse.
Eixo Único Entrada analógica de eixo único, como um gatilho analógico em um gamepad.
Eixo Duplo Entrada analógica de eixo duplo, como um thumbstick.
Seis Dof Pose 3D com tradução e rotação como a produzida por seis controladores DOF.

Você pode encontrar a lista completa em AxisType.

Mapeando a entrada para ações

A maneira como você mapeia uma entrada e uma ação depende do tipo da fonte de entrada:

Entrada do controlador

Vá para o Perfil de Mapeamento de Entrada do Controlador, no Perfil do Sistema de Entrada. Lá, você encontrará uma lista de todos os controladores com suporte:

Input maping profile

Selecione aquele que você deseja configurar e uma janela de diálogo será exibida com todas as entradas do controlador, permitindo que você defina uma ação para cada uma delas:

Input Action Assignment

Entrada de fala

No Perfil de Comando de Fala, no Perfil do Sistema de Entrada, você encontrará a lista de comandos de fala definidos no momento. Para mapear um deles para uma ação, basta selecioná-lo na lista suspensa Ação .

Speech Commands profile

Entrada de gesto

O Perfil de Gestos, no Perfil do Sistema de Entrada, contém todos os gestos definidos. Você pode mapear cada uma delas para uma ação selecionando-a na lista suspensa Ação .

Gesture profile

Manipulando ações de entrada

Aviso

Atualmente, somente ações de entrada do tipo Digital podem ser tratadas usando os métodos descritos nesta seção. Para outros tipos de ação, você precisará manipular diretamente os eventos para as entradas correspondentes. Por exemplo, para lidar com uma ação 6 DOF mapeada para entradas do controlador, você terá que usar IMixedRealityGestureHandler<T> com T = MixedRealityPose.

A maneira mais fácil de lidar com ações de entrada é usar o InputActionHandler script. Isso permite que você defina a ação que deseja ouvir e reagir a eventos iniciados e encerrados usando eventos do Unity.

Acton Handler

Se você quiser mais controle, poderá implementar a IMixedRealityInputActionHandler interface diretamente em seu script. Consulte a seção Eventos de Entrada para obter mais detalhes sobre o tratamento de eventos por meio de interfaces de manipulador.

Exemplos

Veja MRTK/Examples/Demos/Input/Scenes/InputActions uma cena de exemplo mostrando como criar uma ação, mapeá-la para entradas de controlador, fala e gesto e usá-la para girar um objeto no comando.

Input action example