He añadido un nuevo paquete para
Unity a esta lista de reproducción, que tenés acá en la esquina.
En esta ocasión les traigo este Joystick para Android, que quizás también
sirva para IOS solo que no lo he probado. Algo bueno que tiene este Joystick es que también
responde a las entradas de teclado y del mouse, así que se puede probar en el editor de
Unity sin necesidad de una entrada táctil. Acá en la tarjeta de la esquina tienen
el link para descargar este joystick. En el paquete de descarga van a encontrar los
Assets necesarios para el funcionamiento del Joystick, estos tres de aquí y luego hay una
escena donde está montado el joystick y se utiliza para controlar un cubo a modo de ejemplo.
Para montar el joystick simplemente hay que añadir este prefabricado a un Canvas, aquí voy
a crear un Canvas nuevo y voy configurar el escalador de Canvas en “Scale With Screen
Size” y le pongo la resolución de referencia con la que voy a trabajar.
Luego arrastro el
prefabricado del Joystick como hijo del Canvas. Con esto ya se puede empezar a utilizar.
La idea es que el Joystick se encarga de hacer la lectura de las entradas que
haga el jugador y nosotros vamos a programar un script de control del personaje,
un coche o lo que sea que queramos controlar, simplemente haciéndole preguntas al Joystick.
Básicamente le vamos a preguntar dos cosas, la primera es el valor del eje horizontal,
un valor que va a depender de las flechas, va a ser 0 si no se pulsan las flechas o si
se pulsan ambas a la vez, va a valer -1 si se pulsa la flecha izquierda y +1 si se pulsa
la flecha de la derecha.
Entonces usando este valor del eje horizontal se construye
el Script de control de movimiento. Lo segundo que le vamos a preguntar al Joystick
es si se pulsa el botón de interacción, esto funciona exactamente igual que cuando
queremos saber si se pulsa una tecla en un determinado frame, en ese caso se usa por ejemplo
la función GetKeyDown de la clase Input y en este vamos a usar una función que he llamado
IsInteractionDown y está dentro de la clase joystick.
Si eso nos devuelve verdadero significa
que se ha pulsado el joystick en ese frame. Esa es la idea de cómo se utiliza el
Joystick, en el paquete tienen un script llamado PlayerExample en donde utilizo el
Joystick para mover al cubo y hacer que salte. Dentro del Script de control, lo más importante
es definir una variable tipo Joystick, aquí lo estoy haciendo en esta línea, y luego
en la función Start tenemos que inicializar la variable Joystick con esta instrucción.
Recuerden que el prefabricado del Joystick tiene que estar en la jerarquía, sino van a tener
un error porque Unity no lo puede encontrar. Y para el que le interesa saber qué es esto que
estoy haciendo en la línea 19, aquí en la tarjeta de la esquina dejo la lista de reproducción
de la serie sobre encontrar las referencias de GameObjects y componentes en Unity, este
método en particular se ve en el vídeo 9. Una vez hecho todo esto, ya se puede utilizar
el Joystick a través de esta variable que hemos definido, si queremos saber cuánto vale el eje
horizontal hacemos: joystick.GetHorizontalAxis, abrir y cerrar paréntesis.
Y si queremos saber
si se ha pulsado el botón de interacción hacemos joystick.IsInteractionDown,
abrir y cerrar paréntesis. Esas dos funciones son todo lo que se
necesita saber para empezar a usar el Joystick, lo que sigue a partir de ahora va
a depender de ustedes, del tipo de control que quieran hacer o cómo lo quieran implentar.
Algo muy importante es que la lectura de este Joystick en particular hay que hacerla en la
función Update, sino pueden surgir problemas. Aquí a modo de ejemplo estoy multiplicando
el valor del eje horizontal por una velocidad ajustable en el inspector y eso lo guardo la
variable currentSpeed, que luego se lo puedo asignar a un Rigidbody como velocidad o también
se puede realizar el movimiento a través de la clase Transform. Para el salto lo que hago es leer
el estado del botón de interacción y si resulta verdadero simplemente le aplico una velocidad en
el eje vertical.
Pero como les dije, toda esta parte va a depender de lo que ustedes necesiten.
Eso es todo lo que quería mostrarles, recuerden que se pueden descargar esta solución con el link
en la tarjeta de la esquina o en la descripción. Aquí a la izquierda dejo otro videito y a la
derecha una lista con soluciones para Unity que se pueden descargar e importar. No olviden
suscribirse y nos vemos el próximo vídeo! Chau!.