Una plataforma móvil que arranca justo al pisarla añade tensión y ritmo al juego. Aquí verás cómo implementarla en Unity 2D con un enfoque práctico: usar un trigger para activar la animación, ajustar el collider y sincronizar posición y velocidad. Todo con C#, Animator y un prefab reutilizable.
¿Cómo activar una plataforma móvil con trigger en Unity 2D?
Para evitar desajustes cuando el personaje se mueve automáticamente hacia la derecha, la idea clave es simple: la plataforma permanece estática y arranca solo cuando el personaje se posa encima. Esto se logra con un trigger y el Animator deshabilitado por defecto.
¿Qué script C# necesitas?
Crea un script en C# llamado Moving Platform y sobreescribe el método OnTriggerEnter2D. Al detectar al jugador, habilita el Animator del objeto padre de la plataforma.
using UnityEngine;
public class MovingPlatform : MonoBehaviour
{
private Animator animator;
void Awake()
{
animator = GetComponent<Animator>();
animator.enabled = false; // La animación debe empezar apagada.
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
animator.enabled = true; // Activa el movimiento al pisar.
}
}
}
Puntos clave:
- Usa GetComponent() para acceder al Animator del padre.
- Mantén animator.enabled = false al inicio.
- Activa al tocar el trigger con animator.enabled = true.
¿Dónde asignarlo y qué prefab crear?
- Asigna el script al objeto padre de la plataforma móvil.
- Crea un prefab de la plataforma para reutilizarla en distintos escenarios.
- Configura la plataforma para moverse en horizontal mediante su animación.
¿Qué ajustes de collider y animator evitan errores comunes?
Un BoxCollider2D configurado como isTrigger en el objeto padre define la “zona de arranque”. Debe cubrir la plataforma y ser ligeramente más alto para detectar al jugador antes de aterrizar. Aun así, evita dejar demasiado margen o el personaje podría “rozar” sin llegar a tocar, como mostró el gizmo rojo sin contacto real.
Ajustes prácticos:
- Añade un BoxCollider2D al padre y marca “Is Trigger”.
- Haz el trigger del tamaño de la plataforma, un poco más alto.
- Si “no llega a tocar”, baja el borde inferior del collider para permitir el aterrizaje.
- Verifica que el Animator esté deshabilitado por defecto en el GameObject.
Errores típicos a evitar:
- Dejar la animación activa al inicio: arrancará sin pisar.
- Un trigger demasiado alto: genera “rozar” continuo sin colisión efectiva.
- Probar con la plataforma muy elevada: baja su posición para testear saltos.
¿Cómo sincronizar posición y velocidad de la animación?
Si la animación empieza a una altura distinta a la de la plataforma, ocurren desajustes. El caso descrito: plataforma en y = −3.44 y animación en y = 0. Solución: unifica las posiciones clave en un valor coherente (por ejemplo, y = −3) al inicio, en el centro y al final de la animación.
Pasos recomendados:
- Ajusta todas las claves de posición Y a un mismo valor: −3 en inicio, medio y fin.
- Elimina puntos intermedios innecesarios que muevan en vertical.
- Alinea la animación con la posición real de la plataforma en la escena.
Velocidad de animación y jugabilidad:
- Velocidad inicial muy lenta: 0.12.
- Mejora progresiva: 0.15.
- Resultado óptimo para igualar al personaje: 0.20.
Consejos de ritmo:
- Si el personaje va más rápido, sube la velocidad de la animación.
- Un poco más rápida que el jugador añade tensión positiva sin frustrar.
- Prueba y ajusta hasta que el avance sea fluido.
¿Qué retos de diseño de nivel puedes probar?
- Integra la plataforma móvil horizontal en un bloque de nivel existente.
- Crea variantes: looping, diagonal, arriba/abajo para mayor dificultad.
- Diseña un nivel solo con plataformas móviles para nivel experto.
- Añade monedas, pociones y zonas de supersalto para guiar al usuario.
- Equilibra distancias y tiempos para mantener la tensión sin romper el flujo.
¿Te animas a compartir cómo equilibraste velocidad, recorrido y colocación de ítems en tus plataformas móviles? Cuéntalo y enriquece la práctica de toda la comunidad.