Unity 2021: El nuevo Sistema input (New Input System)

En este blog hablaremos sobre el nuevo sistema de input para Unity. En todo juego uno de los primeros elementos a ser programados es el sistema de Input, dado que es el encargado de detectar las órdenes del jugador. El “New Input System” es la forma más practica de ingresar diferentes dispositivos de inputs en el desarrollo de nuestro juego sin tener que programar uno por uno, por lo que todo desarrollador debería conocerlo para determinar si es necesario su uso en sus proyectos.

En este primer blog acerca del new Input System te mostrare la instalación y una manera de configurar una acción usando este nuevo sistema.

  1. ¿Qué es el new Input System (NIS)?
  2. Instalando el NIS
  3. Configurando el NIS
  4. Configurando el Script del jugador

1.Qué es el New Input System (NIS) y cuáles son sus ventajas?

El NIS es un sistema que le facilita al desarrollador crear relaciones entre uno o varios dispositivos de input y una respuesta o acción en tu juego. Su ventaja radica en la facilidad de incluir diversos dispositivos de una manera rápida y segura.

2.Instalando el NIS

El NIS requiere Unity 2019.1 para funcionar por lo que de ser necesario debes descargar una versión más nueva desde la página de Unity

Para instalarlo vamos a Window>Package Manager

En donde dice “Packages” buscamos la opción “Unity Registry” y buscamos el que dice “Input System 1.0.2” y damos click en “Install”.

Ahora Unity te informara que debe reiniciarse para poder cambiar el “old input system” por el NIS

Damos click en “Yes”

Hasta este punto todos los tutoriales que encontraras serán iguales, sin embargo, a partir de ahora pueden existir diferencias el momento de configurar el NIS, en este blog solo te presentamos una forma por lo que si te quedan dudas te insto a revisar otros blogs o tutoriales.

3.Configurando el NIS

Dentro de la carpeta de Assets damos click derecho y vamos a Create>Input Actions

Con esto creamos nuestro “Input Actions Assets” para este ejemplo lo denominaremos NewControls. Dando click izquierdo en este elemento el inspector nos presenta las opciones de “Edit asset”

Dando Clicking en “Edit Asset” una nueva Ventana aparece la cual cuenta con 3 columnas:

La primera es “Action maps” donde definiremos las formas en las que se agruparan diferentes acciones.

La segunda columna es la de “Actions” donde determinamos cual es el dispositivo y la acción que se llevara acabo en cada una acción.

La tercera columna es la de “Properties” donde daremos más claridad acerca de que hará y como funcionara cada acción.

También en la parte superior derecha encontramos la opción “Auto-save” la cual se puede activar, sin embargo, hará un poco más lento el proceso de configurar los mapas de acción. No olvides grabar siempre después de haber hecho cualquier cambio.

Dando click en la cruz en la columna “Action map” podremos agregar un nuevo mapa de acción (para este caso llamado “Player”) dentro del cual se definirán las acciones.

Luego en la columna de “Actions” podemos crear nuevas acciones dando click en la cruz,  cambiamos el nombre de nuestra primera acción a “Attack” y señalando “No binding” podemos definir el cual será el “binding” entre el dispositivo y la acción que active la acción “Attack”.

En la columna “Properties” en la parte que dice “Path” definimos cual es el input que desencadera la acción determinada, una manera rápida de hacer esto es dando click en “Listen” de tal manera que la siguiente tecla que oprimamos podrá ser elegida como la activadora de la acción.

En la imagen de abajo podemos ver como nuestro “Action map” denominado “Player” tiene una “Action” denominada “Attack” asociada a la tecla “Space” de forma que al oprimirla se active la acción.

Una vez terminado con eso (con el “Input Action Asset”, “NewControls”, seleccionado ) damos click en “Generate C# class”

Lo que generara que aparezcan 3 elementos por debajo de este donde podemos determinar los nombres de los Scripts que se van a generar (como recomendación es preferible no modificarlos). Damos click en “Apply”.

Lo que creara un nuevo script que para este ejemplo se llama “NewControls”

4.Configurando el Script del jugador

Para esto en la jerarquia creamos un objeto vacio y luego a este objeto le agregamos el componente “Player Input”

Ahora arrastramos el “Input Action Asset” llamado “NewControls” al espacio denominado “actions” en el “Inspector”

Creamos un nuevo Script llamado “InputPlayer” y se lo agregamos a nuestro objeto llamado “Player”

En el script tenemos que agregar en la parte de arriba “using UnityEngine.InputSystem;” para que funcione adecuadamente.

Y luego escribimos lo que aparece en la imagen de abajo para que en la consola aparezca la palabra “Attacking” al oprimir la tecla “Space”.

Usamos un “if” para que al oprimir el botón, en este caso “Space”, solo corra el código una vez, de lo contrario correrá 3 veces ( dado que cada llamada hace las siguientes acciones; started, performed and canceled)

Para terminar en el inspector en el componente “Player Input” en la opción “Behavior” señalamos “Invoke Unity Events”

Ahora damos click en la flecha de “Events” luego en la flecha de “Player”, buscamos la opción “Attack (callback context)” arrastramos nuestro objeto “Player” y buscamos la opción InputPlayer>Attack

En la imagen de abajo vemos como queda

Ya puedes entrar en Playmode y verificar que en la consola aparece “Attacking” cada vez que oprimimos la tecla “Space”

Con esto terminamos nuestro primer blog acerca del New Input System espera la otra semana la continuación donde explicaremos como configurar el movimiento del jugador.

Como siempre muchas gracias por leer nuestros blogs!!
Si te ha resultado útil este blog déjanos un comentario y síguenos en nuestro Instagram @tortugamedev y Twitter @Totuas2.
Y no olvides revisar nuestro otros blogs acerca del desarrollo de videojuegos, ni tampoco revisar nuestros juegos!!

BIBLIOGRAFÍA

1 thought on “Unity 2021: El nuevo Sistema input (New Input System)”

  1. Pingback: Unity 2021: El nuevo Sistema Input (New Input System): Parte 2 - Tortua Production

Leave a Comment

Your email address will not be published.