Acredito que tenha um erro nesse código que foi solicitado a alteração:
Vector2 vectorMoveDirection = new Vector2(moveDirection, transform.position.y);
rigidbody.velocity = vectorMoveDirection * moveSpeed;
Estamos multiplicando a posição do personagem em Y pela movespeed dele, caso o player esteja em uma posição de Y positivo, ele irá subir sem parar (sem necessidade do pulo) e em uma posição com Y negativo, irá cair rapidamente pela gravidade + movespeed. Portanto, pulo e movimentação estão correlacionados nesse código. Acredito que o ideal seria separar dessa forma:
private void Update()
{
float moveDirection = GameManager.Instance.InputManager.Movement;
rb.velocity = new Vector2(moveDirection * playerSpeed, rb.velocity.y);
}
private void HandleJump(){
if(!isGroundedChecker.isGrounded())
return;
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
}
Aqui temos um problema, pois ao pular, iremos manter a velocidade em X, portanto o personagem irá passar a ter a mesma velocidade, porém irá andar na diagonal, fazendo com que percorra uma distância mais rapidamente. Acredito que possa ser uma escolha de game design do jogo, para ajustar, se não me engano temos que dividir o eixo x por 1,4 (raiz de 2). Seria isso mesmo?
Gostaria da resposta de um monitor para confirmar, pois possa ser que eu esteja falando bobagem.