C# 统一性:使用刚体2d';s拖动以减慢飞行角色的速度
我有一个角色通过rb.AddForce(方向*冲孔强度\值*冲孔强度\总数)发射到空中代码> 我希望这个角色在空中飞得越高,速度就越慢,创造一个“软限制”,这样角色就不会飞得太高。我发现这可以通过根据角色的高度改变刚体的阻力来实现,但我错了:C# 统一性:使用刚体2d';s拖动以减慢飞行角色的速度,c#,unity3d,C#,Unity3d,我有一个角色通过rb.AddForce(方向*冲孔强度\值*冲孔强度\总数)发射到空中 我希望这个角色在空中飞得越高,速度就越慢,创造一个“软限制”,这样角色就不会飞得太高。我发现这可以通过根据角色的高度改变刚体的阻力来实现,但我错了: public float height_slowdown = 1; void Update() { heigth = transform.position.y; rb.drag = height * height_slowdown;
public float height_slowdown = 1;
void Update()
{
heigth = transform.position.y;
rb.drag = height * height_slowdown;
}
使用此选项,角色发射到空中,然后突然减速,就像有一堵看不见的墙一样(意味着X值不再改变)。然后他慢慢地倒在地上
如果有帮助的话,这个角色从X:0y:0开始
我该如何让角色的身高越高,就越慢?我不是统一物理方面的专家,但向下的力对你没有帮助?默认情况下,发射的射弹只会受到重力的影响,拖动重力会对整个场景产生很大的变化,而且,这是一种糟糕的做法,所以我认为这不适用于我的情况。你玩过弥撒吗?我玩过<代码>rb.mass=1+(高度*高度\减速)代码>使用此选项,角色的质量似乎始终为0.0001,因此其发射高度极高。我还试着把它放到
if(rb.mass>=1)
中,这样它就不会低于1,但这也不起作用。我不是统一物理方面的专家,但向下的力对你没有帮助吗?默认情况下,发射的射弹只会受到重力的影响,拖动重力会对整个场景产生很大的变化,而且,还有,这是不好的做法,所以我认为这不适用于我的情况。你玩过弥撒吗?我玩过<代码>rb.mass=1+(高度*高度\减速)代码>使用此选项,角色的质量似乎始终为0.0001,因此其发射高度极高。我还尝试将其放入if(rb.mass>=1)
中,这样它就不会低于1,但也不起作用。