Acciones de entradaInput actions

Las acciones de entrada son abstracciones sobre entradas sin procesar diseñadas para ayudar a aislar la lógica de la aplicación de los orígenes de entrada específicos que producen una entrada.Input Actions are abstractions over raw inputs meant to help isolating application logic from the specific input sources producing an input. Puede ser útil, por ejemplo, definir una acción Seleccionar y asignarla al botón izquierdo del mouse, un botón en un controlador de juegos y un desencadenador en un controlador de 6 DOF.It can be useful, for example, to define a Select action and map it to the left mouse button, a button in a gamepad and a trigger in a 6 DOF controller. A continuación, puede hacer que la lógica de la aplicación escuche los eventos select input action en lugar de tener que tener en cuenta todas las distintas entradas que pueden generarla.You can then have your application logic listen for Select input action events instead of having to be aware of all the different inputs that can produce it.

Creación de una acción de entradaCreating an input action

Las acciones de entrada se configuran en el perfil de acciones de entrada , dentro del perfil del sistema de entrada del componente Mixed Reality Toolkit, especificando un nombre para la acción y el tipo de entradas (restricción de eje ) a las que se puede asignar:Input actions are configured in the Input Actions Profile, inside the Input System Profile in the Mixed Reality Toolkit component, specifying a name for the action and the type of inputs (Axis Constraint) it can be mapped to:

Input Action

Estos son los valores que se usan con más frecuencia para la restricción de eje:These are the most mostly commonly used values for Axis Constraint:

Restricción de ejeAxis Constraint DescripciónDescription
DigitalDigital Entrada de encendido y apagado como un botón binario en un gamepad o mouse.On/off input like a binary button in a gamepad or mouse.
Eje únicoSingle Axis Entrada de eje único, como un desencadenador análogo en un gamepad.Single axis analogue input like an analog trigger in a gamepad.
Eje dualDual Axis Entrada de eje dual como una chincheta.Dual axis analogue input like a thumbstick.
Six DofSix Dof Posición 3D con traducción y rotación como la producida por 6 controladores DOF.3D pose with translation and rotation like the one produced by 6 DOF controllers.

Puede encontrar la lista completa en AxisType .You can find the full list in AxisType.

Asignación de entrada a accionesMapping input to actions

La forma de asignar una entrada a una acción y depende del tipo de origen de entrada:The way you map an input to and action depends on the type of the input source:

Entrada del controladorController input

Vaya al perfil de asignación de entrada del controlador, en el perfil del sistema de entrada.Go to the Controller Input Mapping Profile, under the Input System Profile. Allí encontrará una lista de todos los controladores admitidos:There you will find a list of all supported controllers:

Input maping profile

Seleccione la que desea configurar y aparecerá una ventana de diálogo con todas las entradas del controlador, lo que le permite establecer una acción para cada una de ellas:Select the one you want to configure and a dialog window will appear with all the controller inputs, allowing you to set an action for each of them:

Input Action Assignment

Entrada de vozSpeech input

En perfil de comando de voz, en el perfil del sistema de entrada , encontrará la lista de comandos de voz definidos actualmente. In the Speech Command Profile, under the Input System Profile, you'll find the list of currently defined speech commands. Para asignar uno de ellos a una acción, selecciónelo en la lista desplegable Acción.To map one of them to an action, just select it in the Action drop down.

Speech Commands profile

Entrada de gestoGesture input

El perfil de gestos, en el perfil del sistema de entrada, contiene todos los gestos definidos.The Gestures Profile, under the Input System Profile, contains all defined gestures. Puede asignar cada una de ellas a una acción seleccionándolo en la lista desplegable Acción.You can map each of them to an action by selecting it in the Action drop down.

Gesture profile

Control de acciones de entradaHandling input actions

Advertencia

Actualmente solo se pueden controlar las acciones de entrada de tipo Digital mediante los métodos descritos en esta sección.Currently only input actions of Digital type can be handled using the methods described in this section. Para otros tipos de acción, tendrá que controlar directamente los eventos de las entradas correspondientes en su lugar.For other action types, you'll have to handle directly the events for the corresponding inputs instead. Por ejemplo, para controlar una acción de 6 DOF asignada a las entradas del controlador, tendrá que usar IMixedRealityGestureHandler<T> con T = MixedRealityPose .For example, to handle a 6 DOF action mapped to controller inputs, you'll have to use IMixedRealityGestureHandler<T> with T = MixedRealityPose.

La manera más fácil de controlar las acciones de entrada es usar el InputActionHandler script.The easiest way to handle input actions is to make use of the InputActionHandler script. Esto le permite definir la acción que quiere escuchar y reaccionar a los eventos iniciados y finalizados de la acción mediante eventos de Unity.This allows you to define the action you want to listen to and react to action started and ended events using Unity Events.

Acton Handler

Si desea más control, puede implementar la IMixedRealityInputActionHandler interfaz directamente en el script.If you want more control, you can implement the IMixedRealityInputActionHandler interface directly in your script. Consulte la sección Eventos de entrada para obtener más detalles sobre el control de eventos a través de interfaces de controlador.See the Input Events section for more details on event handling via handler interfaces.

EjemplosExamples

Vea una escena de ejemplo en la que se muestra cómo crear una acción, asignarla a entradas de controlador, voz y gesto y usarla para girar un MRTK/Examples/Demos/Input/Scenes/InputActions objeto en el comando.See MRTK/Examples/Demos/Input/Scenes/InputActions for an example scene showing how to create an action, map it to controller, speech and gesture inputs and use it to rotate an object on command.

Input action example