繁体   English   中英

如何让 Unity 重力和 AddForce 加速

[英]How to make Unity gravity and AddForce accelerate

我正在制作空心骑士的克隆,我的角色以恒定的速度下降而不是加速。 我尝试更改重力比例并使用 Addforce 代替刚体重力。

这是我尝试的重力代码

public Rigidbody2D rb;
void FixedUpdate(){
    rb.AddForce(-transform.up*100f * Time.fixedDeltaTime, ForceMode2D.Impulse);
}

我做了很多测试,你说的好像不是真的。 在一个新项目中,我只是创建了一个刚体 2D 游戏对象并将这个脚本添加到其中。

public void Start()
{
    StartCoroutine(PrintDistance());
}

IEnumerator PrintDistance()
{
    float p = 0;
    for (; ; )
    {
        p = transform.position.y;
        yield return new WaitForSeconds(1);
        print("Distance per second: " + (transform.position.y - p));
    }
}

从控制台可以看到,每一秒,行进的距离都会增加,所以速度不是恒定的,而是加速的。 你怎么能看出下降的速度不是恒定的? 尝试添加此脚本并告诉我结果。 我可以推测您的项目的其他部分导致了这个问题,或者您在项目设置的物理面板中更改了一些属性,但这不太可能。

如果您认为我的回答对您有所帮助,您可以将其标记为接受 我将非常感激:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM