WEBVTT

00:00.020 --> 00:00.560
Hola a todos.

00:00.560 --> 00:01.550
Bienvenidos al video.

00:01.550 --> 00:04.190
En este video quiero agregar una funcionalidad: el doble salto para el jugador.

00:09.560 --> 00:14.210
Primero, ajustemos el gravity scale y el jump force. Puedes usar mis valores o probar los tuyos.

00:33.800 --> 00:36.590
Voy a usar Gravity Scale 4.5 y Jump Force 14.

00:46.330 --> 00:47.080
Muy bien.

00:50.200 --> 00:57.610
También hay un parámetro llamado linear drag, que es la resistencia del aire. Si lo aumentas, el movimiento se siente diferente.

01:12.340 --> 01:13.990
A mí me gusta cómo se siente, lo dejaré así.

01:20.660 --> 01:21.920
Ahora puede saltar.

01:24.200 --> 01:25.640
Así que vamos a hacer el doble salto.

01:40.530 --> 01:42.510
No es difícil de hacer.

01:45.590 --> 01:46.820
Primero, hagamos un bool público canDoubleJump.

01:55.700 --> 02:01.070
Luego, en el método de salto, cambiamos la lógica para permitir el doble salto.

02:55.220 --> 02:58.010
Cuando presionamos el botón, primero comprobamos si está en el suelo y si puede saltar.

03:08.180 --> 03:11.270
Si no está en el suelo, comprobamos si puede hacer doble salto.

03:19.270 --> 03:22.240
Si puede, hacemos el salto y ponemos canDoubleJump en false.

03:32.170 --> 03:36.610
Probamos en Unity: salto, doble salto y ya no puedo hacer doble salto hasta tocar el suelo.

04:05.950 --> 04:06.850
¿Cómo lo arreglamos?

04:11.530 --> 04:13.570
Cuando el jugador toca el suelo, reseteamos canDoubleJump a true.

04:33.170 --> 04:36.470
Creamos un bool privado isAirborne para saber si está en el aire.

04:40.220 --> 04:47.960
En Update, si no está en el suelo y no está en el aire, ponemos isAirborne en true.

05:01.910 --> 05:06.200
Si está en el aire y toca el suelo, isAirborne pasa a false.

05:44.990 --> 05:50.150
Extraemos estos métodos para mayor claridad: updateAirborneStatus y handleLanding.

07:12.360 --> 07:15.780
En handleLanding, ponemos canDoubleJump en true.

07:22.320 --> 07:23.310
Probamos: salto, doble salto y al aterrizar se resetea.

08:04.730 --> 08:06.830
Ahora mejoramos el doble salto usando una fuerza diferente.

08:49.870 --> 08:52.540
Agregamos una variable doubleJumpForce y la usamos en el método doubleJump.

09:49.290 --> 09:51.300
El segundo salto no debe ser tan fuerte como el primero.

10:39.420 --> 10:40.740
Probamos y ajustamos los valores.

10:49.870 --> 10:52.540
No te preocupes si el jugador se pega a las paredes, lo arreglaremos después.

11:08.240 --> 11:15.260
Podemos organizar el código y ocultar variables que ya no necesitamos.

11:46.840 --> 11:49.510
¡Gracias por tu atención! Nos vemos en el próximo video.
