【问题标题】:Torque and acceleration curve?扭矩和加速度曲线?
【发布时间】:2015-06-26 21:46:00
【问题描述】:

我想对我的车轮进行更多的加速控制,这只是一个增加扭矩的气缸。

wheel.AddTorque(wheel.transform.up * throttle);

我真正想要的是让它加速非常快,但在给定的速度下,加速度应该很快下降。就像开始时非常陡峭的曲线。有什么方法可以使用基本的.Addtorque 来影响这一点?

目前,我的轮子只是快速加速到最大速度。向它添加拖动会减慢它的速度,但我无法控制它。

【问题讨论】:

    标签: c# unity3d game-physics


    【解决方案1】:

    你只是影响rigidbodyangularVelocity属性直接。就像您可以影响 velocity 属性而不是使用 .AddForce 方法一样。

    试试这个伪代码

    public float topSpeed;
    public float decelRate;
    protected bool slowDown = false;
    public void Update()
    {
        float speed = wheel.angularVelocity.magnitude;
        if (speed >= topSpeed) slowDown = true;
        if (slowDown)
        {
            speed -= decelRate * Time.deltaTime;
            wheel.angularVelocity = wheel.angularVelocity.normalized * speed;
        }
    }
    

    请记住,由于内部有平方根函数,magnitude 调用很昂贵,但在这种情况下,我没有看到其他解决方法,所以你应该没问题。另外,我没有在设定的方向上放慢速度,这很重要,因为这样无论旋转的方向或方向如何,它都会减慢速度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 2015-05-11
      相关资源
      最近更新 更多