Mover un objeto 2D en Unity

Este blog pretende enseñar como mover un objeto 2D en unity por lo que iremos paso a paso.

Crea el objeto que vamos a mover

Lo primero que vamos a hacer es crear nuestro objeto a mover. Para esto da click derecho en la ventana de la jerarquia busca la opción objeto 3D y elige cubo.

Puedes hacerlo con los sprites que ya tengas o con cualquier objeto que desees mover en 2 dimensiones. Solo para el ejemplo usaremos el cubo.

Agregar el componente Rigidbody2D

Lo segundo es agregar el componente de físicas para objetos 2D llamado Rigidbody2D. Para esto, con el objeto seleccionado en nuestra jerarquía, iremos al inspector y en la parte inferior encontraremos el botón Add Component daremos clic izquierdo y buscaremos el nombre del componente.

Veremos como en el inspector de nuestro objeto aparece el componente ya agregado.

Ajustando el Rigidbody 2D

Para el objetivo de nuestro blog pondremos gravedad en 0 con el objetivo de evitar que nuestro objeto caiga infinitamente.

Sin embargo, el valor de la gravedad depende del proyecto que quieras crear.

Crea un script para mover tu objeto

Iremos a la ventana de proyecto y daremos clic derecho y en la opción create iremos C# script

Se creara un script al cual le podemos asignar el nombre que queramos (recuerda poner un nombre descriptivo del script para que cuando tengas muchos no te confundas)

Definamos Horizontal y Vertical

Lo primero que haremos es definir como accederemos a los movimiento verticales y horizontales de nuestro objeto.

Creamos unas variables float llamadas Vertical y Horizontal

Luego usando el método void UpDate podremos actualizar con cada frame nuestro inputs de vertical y horizontal.

Para poder hacer eso debemos acceder al input manager de Unity y lo hacemos con el comando Input.GetAxis.

El string que nos solicita es el nombre que reciben los ejes X y Y en el Input manager de Unity por eso son “Horizontal” y “Vertical”.

Definir la velocidad y el Rigidbody 2D en el script

Luego para que un objeto se pueda mover requiere de un valor que corresponde a la velocidad a la que se moverá por lo que creamos una variable de tipo float.

Así mismo, necesitamos acceder a la posición de nuestro objeto y eso lo podemos hacer a través del rigidbody2D.

Definamos la nueva posición

Para poder hacer que nuestro objeto se mueva debemos crear un Vector2 que para el ejemplo llamaremos Nueva_posicion para eso tomaremos la posición actual de nuestro objeto y le sumaremos un nuevo vector que dependerá de la velocidad y del Input de movimiento vertical u horizontal.

Este nuevo vector será también dependiente de algo llamado Time.deltatime que lo que hará es normalizar nuestro movimiento de tal manera que se vea más suave y menos brusco.

Para terminar …

Guardamos nuestro Script con Ctrl + S (Si no lo guardas no se verán lo s cambios en Unity).

Volvemos a Unity y agregamos nuestro Script al objeto que queremos mover (lo hacemos como si fuera un componente).

Entramo en playmode y listo!!!

Nuestro objeto se movera con las teclas AWSD y las flechas.

Si te ha resultado útil este blog déjanos un comentario y síguenos en nuestro instagram @tortugamedev y twitter @Totuas2

Leave a Comment

Your email address will not be published.