C# 在移动跳跃时跳跃不是';没有那么高
我是一个学习Unity2D的初学者,我正在做一个平板游戏。当我试着在移动中跳跃时,跳跃比我站着不动跳跃时要小得多。跳跃速度也很快,只是上升得很快。我想这和速度有关,也许会取消它,但我不知道。代码如下: 无效更新() {C# 在移动跳跃时跳跃不是';没有那么高,c#,unity3d,C#,Unity3d,我是一个学习Unity2D的初学者,我正在做一个平板游戏。当我试着在移动中跳跃时,跳跃比我站着不动跳跃时要小得多。跳跃速度也很快,只是上升得很快。我想这和速度有关,也许会取消它,但我不知道。代码如下: 无效更新() { 如果有人对如何解决这一问题有任何想法,我们将不胜感激。当你向左或向右移动时,你会用0覆盖垂直速度。与跳跃一样,你会用0覆盖水平速度。因此,它们相互抵消。谢谢,它工作得非常好。我现在看到它,它看起来很明显。再次感谢 if (Input.GetKey(KeyCode.A))
如果有人对如何解决这一问题有任何想法,我们将不胜感激。当你向左或向右移动时,你会用0覆盖垂直速度。与跳跃一样,你会用0覆盖水平速度。因此,它们相互抵消。谢谢,它工作得非常好。我现在看到它,它看起来很明显。再次感谢
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);
}