[英]How to transition smoothly from AddForce() to MovePosition() in Unity?
[英]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.