C# 在移动跳跃时跳跃不是';没有那么高

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

我是一个学习Unity2D的初学者,我正在做一个平板游戏。当我试着在移动中跳跃时,跳跃比我站着不动跳跃时要小得多。跳跃速度也很快,只是上升得很快。我想这和速度有关,也许会取消它,但我不知道。代码如下:

无效更新() {


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

当你向左或向右移动时,你会用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); 
 }