Ações de entrada — MRTK2
As Ações de Entrada são abstrações sobre entradas não processadas destinadas a ajudar a isolar a lógica da aplicação das origens 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 rato, um botão num gamepad e um acionador num controlador DOF 6. Em seguida, pode fazer com que a sua lógica de aplicação ouça Selecionar eventos de ação de entrada em vez de ter de estar ciente de todas as diferentes entradas que podem produzi-la.
Criar uma ação de entrada
As ações de entrada são configuradas no Perfil de Ações de Entrada, no Perfil do Sistema de Entrada no componente Mixed Reality Toolkit, especificando um nome para a ação e o tipo de entradas (Restrição do Eixo) a que pode ser mapeado:
Estes são os valores utilizados mais frequentemente para a Restrição do Eixo:
Restrição do Eixo | Descrição |
---|---|
Digital | Entrada ativada/desativada, como um botão binário num gamepad ou rato. |
Eixo Único | Entrada analógica de eixo único como um acionador analógico num 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 6 controladores DOF. |
Pode encontrar a lista completa em AxisType
.
Mapear entrada para ações
A forma como mapeia uma entrada e ação depende do tipo da origem de entrada:
Entrada do controlador
Aceda ao Perfil de Mapeamento de Entrada do Controlador, no Perfil do Sistema de Entrada. Aí encontrará uma lista de todos os controladores suportados:
Selecione a que pretende configurar e será apresentada uma janela de diálogo com todas as entradas do controlador, permitindo-lhe definir uma ação para cada uma delas:
Entrada de voz
No Perfil de Comando de Voz, no Perfil do Sistema de Entrada, encontrará a lista de comandos de voz atualmente definidos. Para mapear um deles para uma ação, basta selecioná-lo no menu pendente Ação .
Entrada de gestos
O Perfil de Gestos, no Perfil do Sistema de Entrada, contém todos os gestos definidos. Pode mapear cada um deles para uma ação ao selecioná-la no menu pendente Ação .
Processar ações de entrada
Aviso
Atualmente, apenas as ações de entrada do Tipo digital podem ser processadas com os métodos descritos nesta secção. Para outros tipos de ação, terá de processar diretamente os eventos das entradas correspondentes. Por exemplo, para processar uma ação de 6 DOF mapeadas para entradas do controlador, terá de utilizar IMixedRealityGestureHandler<T>
com T = MixedRealityPose
.
A forma mais fácil de lidar com as ações de entrada é utilizar o InputActionHandler
script. Isto permite-lhe definir a ação que pretende ouvir e reagir a eventos iniciados e terminados através de Eventos do Unity.
Se quiser mais controlo, pode implementar a IMixedRealityInputActionHandler
interface diretamente no script. Veja a secção Eventos de Entrada para obter mais detalhes sobre o processamento de eventos através de interfaces de processador.
Exemplos
Veja MRTK/Examples/Demos/Input/Scenes/InputActions
uma cena de exemplo que mostra como criar uma ação, mapeá-la para entradas de controlador, voz e gesto e utilizá-la para rodar um objeto no comando.