簡體   English   中英

Unity中gameObject的水平重力

[英]Horizontal gravity on a gameObject in Unity

我正在制作一個簡單的2D游戲。

我有一個gameobject具有rigidbody組件。

標准剛體重力將我的游戲對象下拉,但是我希望重力將游戲對象向左拖動。

我知道如何在編輯->項目設置-> ...中將重力設置為向左拉,但是此設置會將重力更改為所有剛體,這對我來說是個問題。

我只想為1個游戲對象設置重力。

由於您正在制作2D游戲,因此我假設您的GameObject附加了Rigidbody2D組件。 將其上的重力比例設置為0。還將ConstantForce2D附加到GameObject上,然后在Force- > X中應用重力。 為了獲得與重力相同的力,您必須將重力(可能是9.81)乘以GameObject的質量。 如果自定義重力或GameObject的質量不時發生變化,請確保在更新方法中進行計算,然后將其應用於ConstantForce2D組件。 可能看起來像這樣:

Rigidbody2D playerRigidbody;
ConstantForce2D customGravity;

void Awake () {
    playerRigidbody = GetComponent<Rigidbody2D> ();
    customGravity = GetComponent<ConstantForce2D> ();

    float gravityForceAmount = playerRigidbody.mass * Physics2D.gravity.magnitude;
    customGravity.force = new Vector2 (-gravityForceAmount, 0); // gravity to the left
}

void Update () {
    if(mass or gravity changes)
        modify the constant force;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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