Contenido del curso
Empezando Nuestro Proyecto
Teoría de Gameplay
Mecánica Principal
- 8

Creando la cuadrícula
08:00 min - 9

Ajustando la cámara
13:06 min - 10

Sistema de coordenadas para instanciar las piezas
05:16 min - 11

Instanciando las piezas en la cuadrícula
13:39 min - 12

Moviendo las piezas
Viendo ahora - 13

Intercambiando las piezas de lugar
14:45 min - 14

Permitiendo solo ciertos tipos de movimientos
05:38 min - 15

Creando las funciones del match 3
16:13 min - 16

Usando el match 3 en nuestro juego
10:21 min - 17

Eliminando los matches por defecto
12:30 min - 18

Colapsando las piezas
17:31 min - 19

Match 3 combo
07:47 min - 20

Rellenando las piezas
07:36 min - 21

Mejorando la animación de las piezas
07:37 min
Publicacion
Diseño del juego
- 24

Hablemos de diseño
01:34 min - 25

Agregando un sistema de puntos
16:45 min - 26

Sistema de tiempo
07:05 min - 27

Interfaz para el sistema de tiempo
09:26 min - 28

Creando sistema de UI
06:26 min - 29

Pantalla de game over
14:37 min - 30

Agregando funcionalidad a la pantalla de game over
09:16 min - 31

Reiniciando el juego
08:39 min - 32

Agregando audio
10:05 min - 33

Terminando el juego
07:38 min
Conclusiones
Moviendo las piezas
Resumen
Agregar movimiento suave y profesional a las piezas de un juego en Unity es más sencillo de lo que parece cuando se utiliza la herramienta adecuada. En esta ocasión se implementa la capacidad de movimiento usando DOTween, un asset gratuito disponible en la tienda de Unity que permite animar objetos con pocas líneas de código y resultados visualmente atractivos.
¿Cómo instalar y configurar DOTween en tu proyecto de Unity?
El primer paso es obtener el asset desde la tienda de Unity. Buscando "DOTween Unity" en Google, el resultado correcto es DOTween (HOTween v2), listado como herramienta de animación [0:14]. Es necesario tener la sesión de Unity iniciada para poder agregar el asset a tu cuenta con el botón "Add to My Assets".
Una vez agregado, el botón cambia a "Open in Unity" [0:36]. Al hacer clic, el navegador pregunta si deseas abrir Unity; al confirmar, se abre el Package Manager dentro del editor. Desde ahí se importa el asset haciendo clic en "Import" y luego confirmando la lista de scripts y archivos que se agregarán al proyecto [0:56].
Después de la importación, es obligatorio realizar el setup de DOTween. Esto se hace desde el menú Tools > DOTween Utility Panel, donde aparece un botón de "Setup DOTween" [1:18]. Al ejecutarlo, Unity procesa los archivos necesarios para que la librería funcione correctamente.
¿Cómo crear la función de movimiento con DOTween?
Con DOTween configurado, el trabajo se traslada al script de la pieza. Lo primero es importar la librería añadiendo using DG.Tweening; al inicio del archivo [1:52]. Esta línea da acceso a las funcionalidades de animación que DOTween ofrece.
La función de movimiento se define como public void Move(int desX, int desY) y recibe dos parámetros: la posición destino en el eje X y en el eje Y [1:42]. Dentro de ella se utiliza el método DoMove, que es la pieza central de DOTween para trasladar objetos:
csharp using DG.Tweening;
public void Move(int desX, int desY) { transform.DOMove(new Vector3(desX, desY, -5), 0.25f) .SetEase(Ease.InOutCubic) .OnComplete(() => { x = desX; y = desY; }); }
- DoMove recibe un
Vector3con la posición destino y un flotante que representa la duración del movimiento en segundos [2:12]. - SetEase permite encadenar un tipo de easing al movimiento. En este caso se usa
Ease.InOutCubic, que aplica aceleración y desaceleración para que el desplazamiento se vea natural en lugar de lineal [2:30]. - OnComplete es un callback que se ejecuta cuando la animación termina. Aquí se actualizan las variables internas
xeycon la nueva posición de la pieza [2:48].
El concepto de encadenamiento de funciones (method chaining) es fundamental: cada método devuelve el mismo objeto, lo que permite llamar a .SetEase() y .OnComplete() uno tras otro en la misma instrucción.
¿Cómo probar el movimiento rápidamente con ContextMenu?
Para verificar que todo funciona sin necesidad de escribir lógica de juego adicional, se crea una función auxiliar llamada MoveTest [3:14]:
csharp [ContextMenu("test move")] public void MoveTest() { Move(0, 0); }
El decorador ContextMenu agrega una opción al menú contextual del componente en el inspector de Unity. Al hacer clic derecho (o en los tres puntos del componente), aparece la opción "test move" [3:42]. Este patrón es muy útil para probar funcionalidades rápidamente durante el desarrollo; la única restricción es que la función decorada no debe recibir parámetros.
Al presionar Play y seleccionar una pieza, ejecutar "test move" desde el menú contextual mueve la pieza hacia la posición (0, 0) en solo 0.25 segundos [4:02]. El movimiento es rápido pero suave gracias al easing aplicado.
¿Qué sigue después de implementar el movimiento?
Con las piezas capaces de moverse, el siguiente desafío es controlar cuándo y hacia dónde se desplazan. Esto implica conectar la lógica de entrada del jugador con la función Move. ¿Tienes alguna idea de cómo implementarlo? Compártela en los comentarios.