Depois que fiz as alterações do mão na massa, o pulo do personagem parou de funcionar.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Depois que fiz as alterações do mão na massa, o pulo do personagem parou de funcionar.
Olá, Víctor!
Pelo que você descreveu, parece que o problema pode estar relacionado à forma como o Rigidbody está sendo configurado para o movimento do personagem. Ao alterar a movimentação de transform.Translate() para usar rigidbody.velocity, é importante garantir que o Rigidbody está configurado corretamente para permitir o pulo.
Aqui estão algumas sugestões que podem ajudar a resolver o problema:
Verifique a Configuração do Rigidbody: Certifique-se de que o componente Rigidbody do seu personagem está configurado corretamente. O valor de gravidade e as restrições de movimento podem afetar o pulo. Por exemplo, o campo "Gravity Scale" deve estar configurado para um valor que permita ao personagem cair após o pulo.
Código do Pulo: Revise o código responsável pelo pulo. Certifique-se de que está aplicando uma força vertical ao Rigidbody quando o personagem pula. Algo como rigidbody.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); pode ser usado, onde jumpForce é a força do pulo que você deseja aplicar.
Verifique as Condições de Pulo: Assegure-se de que as condições para o personagem pular ainda estão sendo verificadas corretamente. Por exemplo, se você tem uma verificação para saber se o personagem está no chão antes de pular, confirme que essa lógica ainda está funcionando.
Debugging: Use Debug.Log() para imprimir mensagens durante a execução do jogo e verificar se o código de pulo está sendo executado quando você espera. Isso pode ajudar a identificar onde o problema está ocorrendo.
Espero que essas dicas ajudem a resolver o problema com o pulo do seu personagem. Bons estudos!
Consegui resolver o problema, alterando o método Update dessa forma:
private void Update()
{
var moveDirection = GameManager.Instance.InputManager.Movement;
rigidbody.velocity = new Vector2(moveDirection * moveSpeed, rigidbody.velocity.y);
}