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 6 DOF. Em seguida, você pode fazer com que a lógica do aplicativo ouça Selecionar eventos de ação de entrada em vez de ter que estar ciente de todas as entradas diferentes que podem produzi-lo.

Criar 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 kit de ferramentas Realidade Misturada, especificando um nome para a ação e o tipo de entradas (Restrição de Eixo) para o qual ela pode ser mapeada:

Ação de entrada

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

Restrição de 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 análoga de eixo duplo como um thumbstick.
Seis Dof Pose 3D com tradução e rotação como a produzida por 6 controladores DOF.

Você pode encontrar a lista completa em AxisType.

Mapeando a entrada para ações

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

Entrada do controlador

Acesse 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:

Perfil de mapeamento de entrada

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:

Atribuição de ação de entrada

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 .

Perfil comandos de fala

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 .

Perfil de gesto

Manipulando ações de entrada

Aviso

Atualmente, somente as 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 manipular uma ação 6 DOF mapeada para entradas do controlador, você precisará usar IMixedRealityGestureHandler<T> com T = MixedRealityPose.

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

Manipulador Acton

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

Confira 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.

Exemplo de ação de entrada