Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Bug na alteração da movimentação

Depois que fiz as alterações do mão na massa, o pulo do personagem parou de funcionar.

2 respostas

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:

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

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

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

  4. 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!

solução!

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);
}