-1

我想在我的汽车的所有轮毂上添加一个车轮对撞机,并在车根上安装一个刚体。它带来了一些问题,例如对撞机相对于轮子旋转了 90 度,但经过一些调整后得到修复。所以我写了一个小脚本来增加“垂直”轴的力,但是当我进入播放模式时发生了这种情况:

  1. 加力效果很好,但是在前进时增加负力会使汽车加速。
  2. 重心搞砸了。

我的汽车脚本(也许不是性能最好的,但这只是一个测试):

using UnityEngine;

public class Car : MonoBehaviour
{

    public WheelCollider a, b, c, d;
    public float engineForce;

    private void Update()
    {
        foreach (WheelCollider collider in new WheelCollider[] {a, b, c, d})
        {
            collider.motorTorque = Input.GetAxis("Vertical") * engineForce;
        }
    }
}

我的问题是:我做错了还是车轮对撞机?

4

1 回答 1

0
  1. 您收到警告,它实际上告诉您该怎么做 - 使用 WheelCollider 将刚体添加到您的对象。不要让它们运动或其他东西。让它们保持原样。WheelCollider 不像 Box 或 Sphere 那样通常的对撞机,它是纯物理的,因此向对象本身添加物理是至关重要的。
  2. 另外,在计算扭矩时使用 Time.deltaTime,这样你的速度就不会依赖于 fps。
  3. 您为相同的 4 个轮子阵列分配内存的每一帧。这会减慢代码的速度。而是创建一个新字段,然后每帧都使用它。
于 2021-10-02T23:23:37.627 回答