Contenido del Curso
Juego de Lucha en Unity
Juego de Lucha en Unity
Finalizar la animación del jugador
Animación de Salto
Para el salto, tendremos dos animaciones: Como el jugador saltará y luego caerá, necesitamos crear dos animaciones para eso. La transición entre ellas se basará en la "velocidad y" del jugador; si y es positivo, está saltando, y si y es negativo, está cayendo. Podemos obtener la velocidad y del componente Rigidbody2D adjunto al jugador.
Este código asigna el valor para el parámetro de transición entre el salto y la caída.
Explicación del Código
Esta línea verifica si se presiona la tecla Espacio (Input.GetKeyDown(KeyCode.Space)
), si el jugador está en el suelo (isGrounded
) y si el jugador no está atacando actualmente (animator.GetBool("isAttacking") == false
). Si se cumplen todas las condiciones, se ejecutará el siguiente bloque de código.
Esta línea añade una fuerza hacia arriba al componente Rigidbody (rb
) adjunto al jugador, simulando un salto. La fuerza aplicada es en la dirección ascendente (Vector2.up
) con magnitud definida por jumpForce
, y se aplica de manera impulsiva (ForceMode2D.Impulse
).
Esta línea establece un parámetro booleano "isJumping" en el componente Animator a verdadero, activando la animación de salto.
Esta línea verifica si el jugador está actualmente saltando (animator.GetBool("isJumping") == true
), si la velocidad vertical del jugador es negativa (rb.velocity.y < 0
) y si el jugador está en el suelo (isGrounded
). Si se cumplen todas las condiciones, se ejecutará el siguiente bloque de código.
Esta línea establece el parámetro booleano "isJumping" en el componente Animator a false, indicando que el jugador ha terminado de saltar y caer y cambiará su animación a inactivo.
Esta línea lanza un rayo hacia abajo desde la posición de los pies del jugador (playerFeet.position
) para detectar si el jugador está en el suelo. Devuelve true si el rayo intersecta con cualquier colisionador en la capa del suelo dentro de una distancia de 0.1 unidades, actualizando la variable isGrounded
en consecuencia.
¡Gracias por tus comentarios!