【问题标题】:what's wrong with my code, I want to make the bird fly?我的代码有什么问题,我想让鸟飞起来?
【发布时间】:2021-08-05 22:54:41
【问题描述】:

我试图让小鸟在点击空格或点击屏幕时飞起来,如果你离开它,它会掉下来(就像 Flappy Bird 游戏一样)

但是当我点击空格时,鸟会飞起来,再也不会下来

enter image description here

public class Bird : MonoBehaviour
{
  private const float JUMP_AMOUNT = 100f;
    
  private Rigidbody2D birdRigidbody2D;
    
  private void Awake()
  {
    birdRigidbody2D = GetComponent<Rigidbody2D>();
  }
    
  private void Update()
  {  
    if (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0))
    { 
      Jump();
    } 
  }

  private void Jump() 
  {
    birdRigidbody2D.velocity = Vector2.up * JUMP_AMOUNT;
  }
}

【问题讨论】:

  • 让小鸟再次下来的代码在哪里?
  • 刚体是否启用了重力?

标签: c# visual-studio unity3d game-development


【解决方案1】:

这是因为您在每次击键时设置对象的速度。速度是物体的速度。除非有一些物理影响,否则速度永远不会改变。

因此,您应该确保在刚体上启用重力。

在这种情况下,您还应该使用AddForce 而不是直接设置速度。

【讨论】:

    【解决方案2】:

    您需要在刚体上激活重力: Rigidbody Gravity turned on

    确保选中该框 并使用添加力而不是速度,例如:

    birdRigidbody2D.AddForce(0, JUMP_AMOUNT * Time.deltaTime)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-26
      • 2016-02-24
      • 1970-01-01
      • 2021-03-02
      • 2011-07-28
      相关资源
      最近更新 更多