Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Finalizar la animación del jugador | Sistema de Animación de Unity
Juego de Lucha en Unity
course content

Contenido del Curso

Juego de Lucha en Unity

Juego de Lucha en Unity

1. Sistema de Animación de Unity
2. Comportamiento del Jugador
3. Comportamiento del Enemigo
4. Mejorar el Juego
5. Mejorar el Juego de Flappy Bird

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

¿Qué representa un `raycast` en Unity?

¿Qué representa un raycast en Unity?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 6
some-alt