jairogarcíarincón

Introducción



En este ejercicio, aprenderemos cómo mover objetos de Unity usando las teclas del ordenador. El objetivo es que el primer sprite que antes caía sobre el otro, ahora se mueva cuando pulsemos las teclas de flecha o, de forma alternativa, las teclas WASD.

Lo primero que debemos hacer, tal y como indica el enunciado es duplicar la escena Colisiones en otra llamada Movimiento.

A continuación, puesto que ahora queremos mover nosotros el sprite, debemos quitarle la gravedad, de modo que no caiga solo al arrancar el juego. Para ello, selecciona el sprite que antes caía sobre el otro y, en su Inspector window, busca la propiedad Gravity scale del componente Rigidbody2D y ajústala a 0:

09 Unity 2D - Desactivar gravedad
Fuente: Elaboración propia


Por otra parte, dado que ya no vamos a necesitar que cambie de color, puedes desactivar o eliminar el script de Colision de la Inspector window.

El movimiento con las teclas



Unity provee una serie de comandos de entrada básicos, que puedes consultar haciendo clic en Edit > Project Settings > Input:

10 Unity 2D - Input manager
Fuente: Elaboración propia


En concreto, puedes ver que por defecto existen ya una serie de ejes o axes preconfigurados, entre los que se incluyen el Horizontal, que corresponde a las flechas izquierda y derecha (o las teclas A y D) y el Vertical, que corresponde a las flechas arriba y abajo (o a las teclas W y S).

También provee de ejes destinados al salto (Jump) o a los disparos (Fire), pero esos los veremos más adelante.

Para conseguir el movimiento del sprite a partir de estos ejes, debemos crear y asociar al sprite un nuevo script llamado Movimiento con el siguiente código. Fíjate bien en los comentarios y atiende a las explicaciones del profesor para entenderlo correctamente:



Si guardas el script y se lo asocias al sprite que quieres mover, verás que este se mueve en las cuatro direcciones.

Puedes ajustar la velocidad de movimiento a tu gusto desde el parámetro Velocidad del componente Movimiento de la Inspector window del sprite. Este valor sobre-escribirá el que has indicado en el script.

11 Unity 2D - Freeze rotation y Velocidad
Fuente: Elaboración propia


Además, dado que la colisión con el otro sprite sigue funcionando, si quieres evitar que el sprite rote solo cuando se produce la colisión, también en la Inspector window debes activar la propiedad Freeze Rotation en el eje Z (dentro del apartado Constraints del Rigidbody 2D).


Publicado el 03 de Octubre de 2022

unityvideojuegos2d