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