Conteúdo do Curso
Jogo de Luta no Unity
Jogo de Luta no Unity
Finalizar Animação do Jogador
Animação de Salto
Para o salto, teremos duas animações: Como o jogador irá saltar e depois cair, precisamos criar duas animações para isso. A transição entre elas será baseada na "velocidade y" do jogador; se y for positivo, ele está saltando, e se y for negativo, ele está caindo. Podemos obter a velocidade y do componente Rigidbody2D anexado ao jogador.
Este código atribui o valor para o parâmetro de transição entre o salto e a queda.
Explicação do Código
Esta linha verifica se a tecla Espaço foi pressionada (Input.GetKeyDown(KeyCode.Space)
), se o jogador está no chão (isGrounded
) e se o jogador não está atacando atualmente (animator.GetBool("isAttacking") == false
). Se todas as condições forem atendidas, o bloco de código a seguir será executado.
Esta linha adiciona uma força para cima ao componente Rigidbody (rb
) anexado ao jogador, simulando um salto. A força aplicada é na direção para cima (Vector2.up
) com magnitude definida por jumpForce
, e é aplicada de forma impulsiva (ForceMode2D.Impulse
).
Esta linha define um parâmetro booleano "isJumping" no componente Animator como verdadeiro, acionando a animação de salto.
Esta linha verifica se o jogador está atualmente pulando (animator.GetBool("isJumping") == true
), se a velocidade vertical do jogador é negativa (rb.velocity.y < 0
) e se o jogador está no chão (isGrounded
). Se todas as condições forem atendidas, o bloco de código a seguir será executado.
Esta linha define o parâmetro booleano "isJumping" no componente Animator como falso, indicando que o jogador terminou de pular e cair e mudará sua animação para inativo.
Esta linha lança um raio para baixo a partir da posição dos pés do jogador (playerFeet.position
) para detectar se o jogador está no chão. Retorna verdadeiro se o raio interceptar qualquer colisor na camada do chão dentro de uma distância de 0.1 unidades, atualizando a variável isGrounded
de acordo.
Obrigado pelo seu feedback!