繁体   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