我是一个学习统一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覆盖水平速度。因此,它们中的每一个都抵消了另一个。