簡體   English   中英

如何在unity2d上編寫適當的跳轉腳本? 剛體.addforce不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM