加速刚体的附加力

时间:2014-06-17 14:10:49

标签: unity3d game-physics frame-rate

我需要一种方法来加速对象的addforce方法。

强制结果感觉太慢,我希望它更快地应用,并且最终结果时间流逝会缩短。

void FixedUpdate()
{....     
    Vector3 v_x = new Vector3(keyb_x, 0, 0);
    Vector3 force_ = v_x * kspeed * Time.deltaTime;
    float speed = rigidbody.velocity.magnitude;

    rigidbody.AddForce(force_, ForceMode.Impulse);
 ....}

在y方向上将重力从-9提高到-19或更高会产生预期结果,但所有其他对象都会受到影响。我只希望它仅适用于特定对象。

2 个答案:

答案 0 :(得分:2)

所有重力都会向每个物理更新的所有刚体施加向下的力。对于2D统一物理学,你可以使用rigidbody2D.GravityScale,它可以根据每个刚体来衡量重力的效果,但对于3D刚体,你应该施加一个等于你想要的物体重力变化的恒定力

e.g。

//adds a downforce of 10 per second
rigidbody.AddForce(Vector3.down * 10f * Time.fixedDeltaTime);

您需要将其置于固定更新功能中。

答案 1 :(得分:0)

object_Rigid2D.gravityScale + = gravity_Increase * Time.deltaTime;