[英]How to write a proper jump script at unity2d? rigidbody.addforce doesnt work
好的,所以我正在創建一個簡單的平台游戲,並且正在努力使玩家游戲對象跳躍。 問題是,當我按空格鍵時,我的游戲對象只是向上移動然后向下移動,而根本看起來並不像是跳躍。 據我所知,它應該模擬一個脈沖,我應該能夠看到物體向上運動,但我不知道。
void Update ()
{
if (Input.GetKeyDown(KeyCode.UpArrow))
{
rigidbody2d.AddForce(Vector2.up * 50f, ForceMode2D.Impulse);
}
}
另外,我嘗試從幾個教程中復制代碼,這些代碼雖然效果很好,但對我而言卻行不通。
正如@bolkay所評論的,您可以更改剛體的速度,但是,如果我對此有疑問,則應該遵循unity的建議,而不是直接修改它,並且可能在掌握更多技能后開始操縱速度。 速度文檔: https : //docs.unity3d.com/ScriptReference/Rigidbody-velocity.html
也就是說,以速度跳躍:
rb.velocity=rb.velocity+transform.up*jumpPower; //easier to predict
rb.velocity= transform.velocity*transform.up*jumpPower
rb.velocity= new vector2(rigidbody2d.velocity.x,jumpPower);//erases your rb's previous y velocity
我認為您的問題正在生效,您正在應用(代碼似乎還可以)嘗試聲明一個float並在運行時使用其值。 還要在檢查器中檢查您的rb的屬性。
您可以嘗試使用以下解決方案:
rigidbody2d.AddForce(Vector2.up * 50f, ForceMode2D.Force);
我將ForceMode2D.Impulse
更改為ForceMode2D.Force
,也許可以使用。 我也遇到了這個問題-飛起來並無法下降XD
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.