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.
usingUnityEngine;publicclassMovingPlatform:MonoBehaviour{privateAnimator animator;voidAwake(){ animator =GetComponent<Animator>(); animator.enabled =false;// La animación debe empezar apagada.}voidOnTriggerEnter2D(Collider2D other){if(other.CompareTag("Player")){ animator.enabled =true;// Activa el movimiento al pisar.}}}
Puntos clave:
Usa GetComponent<Animator>() 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.