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