Hola a todos.
Bienvenidos al video.
En este video te mostraré cómo hacer el Coyote Jump.
¿Qué es el Coyote Jump?
Normalmente el personaje solo puede saltar cuando está en el suelo.
Pero si se mueve justo al borde, deja de detectar el suelo y ya no puede saltar, lo cual es normal.
Podemos mejorar la sensación del juego añadiendo un pequeño retraso antes de quitar la habilidad de saltar, permitiendo saltar justo después de dejar el suelo.
Así parece que el jugador saltó en el último segundo, como si tuviera mucha habilidad.
Pero en realidad es solo un temporizador en el script.
¿Cómo lo hacemos?
Creamos un temporizador que permite saltar durante un breve periodo después de dejar el suelo.
Si no entiendes ahora, sigue el video y lo verás claro.
Primero, renombramos variables y limpiamos el código.
Renombramos a activated.
Eliminamos booleanos que ya no necesitamos.
Creamos dos variables para el Coyote Jump: una ventana de tiempo y un float para activarlo.
Por ejemplo, coyoteJumpWindow = 0.5.
Muy bien.
Creamos métodos para activar y cancelar el Coyote Jump.
Al dejar el suelo, activamos el Coyote Jump guardando el tiempo actual.
Para cancelar, ponemos el tiempo en time.time - 1.
Activamos el Coyote Jump solo si estamos cayendo (rb.velocity.y < 0).
Agregamos un debug para comprobar que funciona.
¡Funciona!
Cuando intentamos saltar, comprobamos si estamos en el suelo o si el Coyote Jump está disponible.
Si usamos el Coyote Jump, mostramos un debug.
Después de saltar, cancelamos el Coyote Jump para que no se use de nuevo.
Ajusta el valor de la ventana según prefieras.
En el Rigidbody, pon collision detection en continuous para mejor precisión.
¡Listo! El jugador está listo para probar en el nivel.