当在移动时跳跃时跳跃没有那么高



我是一个学习统一2d的初学者,我正在制作一个平台型游戏。当我尝试边移动边跳跃时,跳跃比我站着不动边跳跃时要小得多。跳跃也很快,只是上升得很快。我认为这与速度有关,也许会抵消它,但我不知道。这是代码:

void Update(({

if (Input.GetKey(KeyCode.A))
{

isLeftPressed = true;
}
else
{

isLeftPressed = false;
}


if (Input.GetKey(KeyCode.D))
{

isRightPressed = true;
}
else
{
// Rightkey(A) isnt being pressed
isRightPressed = false;
}


if (IsGrounded() && Input.GetKeyDown(KeyCode.Space))
{

isSpaceBarPressed = true;
}

if (!IsGrounded())
{


isSpaceBarPressed = false;
}

}
private void FixedUpdate()
{
if (isLeftPressed)
{
moveLeft();
}

else if (isRightPressed)
{     
moveRight();
}

else
{
_rigidbody2d.velocity = new Vector2(0, _rigidbody2d.velocity.y);
}
if (isSpaceBarPressed)
{ 
Jump();
}
}  

private void moveLeft()
{
_rigidbody2d.velocity = new Vector2(-playerSpeed, 0);
}
private void moveRight()
{
_rigidbody2d.velocity = new Vector2(playerSpeed, 0);
}

private void Jump()
{
_rigidbody2d.velocity = new Vector2(_rigidbody2d.velocity.x, 
playerJumpHieght); 
}

如果有人对如何解决这个问题有任何想法,我们将不胜感激。

向左或向右移动时,会用0覆盖垂直速度。和跳跃一样,你用0覆盖水平速度。因此,它们中的每一个都抵消了另一个。

最新更新