Olá Mariana!
Parece que o problema pode estar relacionado ao uso do rigidBody.velocity += Vector2.up * jumpForce;
. Esse método adiciona à velocidade atual, mas se houver alguma outra lógica que redefine a velocidade do personagem a cada frame, isso pode estar impedindo o movimento vertical.
Aqui estão algumas coisas para verificar:
Confirme a Configuração do Rigidbody2D: Verifique se o componente Rigidbody2D
do seu personagem está configurado corretamente. Certifique-se de que a gravidade está aplicada e que o modo de simulação está definido como "Dynamic".
Verifique Outros Scripts: Veja se há outros scripts que possam estar alterando a velocity
do Rigidbody2D
a cada frame, especialmente no método Update
ou FixedUpdate
.
Força do Pulo: Experimente aumentar o valor de jumpForce
para ver se há alguma diferença. Às vezes, um valor muito baixo pode não ser suficiente para perceber o movimento.
Camadas de Colisão: Certifique-se de que o isGroundedChecker
está funcionando corretamente e que o personagem está realmente detectando o chão. Verifique as camadas de colisão para garantir que estão configuradas corretamente.
Debugging Adicional: Adicione mais Debug.Log
para verificar o valor da velocity
antes e depois de aplicar a força do pulo.
Aqui está um exemplo de como você pode modificar o código para verificar a velocity
:
private void HandleJump()
{
bool isGrounded = isGroundedChecker.IsGrounded();
UnityEngine.Debug.Log("HandleJump");
UnityEngine.Debug.Log("Is Grounded: " + isGrounded);
UnityEngine.Debug.Log("Velocity Before: " + rigidBody.velocity);
if (!isGrounded) { return; }
rigidBody.velocity += Vector2.up * jumpForce;
UnityEngine.Debug.Log("Velocity After: " + rigidBody.velocity);
}
Espero que essas dicas ajudem a resolver o problema. Bons estudos!