Plataforma móvil con trigger en Unity 2D

Clase 46 de 53Curso de C# para Videojuegos

Resumen

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<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.