Wheel Collider与Wheel Game轮子有不同的旋转

时间:2017-09-22 05:54:53

标签: unity3d collider racing

我想在我的车轮上添加一个车轮对撞机,但它有90度旋转。

这是图片:

problem image

如何调整车轮的对撞机?

4 个答案:

答案 0 :(得分:2)

为了进一步参考,我正在写下我的评论作为答案。

我能想到的最简单的解决方案是;添加一个空的gameObject。将车轮对撞机连接到该空gameObject。并将空gameObject个孩子放到你的车轮上。通过此操作,您可以旋转空gameObject,以便您的对撞机旋转。 @Programmer还分享了一个关于WheelCollider Tutorial的链接。可以找到here

答案 1 :(得分:1)

你能做的最好的事情之一是,在导入游戏对象之前,确保游戏对象是 Y Forward。您可以在导出时在 Blender 中更改它。

答案 2 :(得分:1)

我遇到了同样的问题。然而,简单地旋转一个空的父对象在 Unity 的现代版本 (2019.4) 中不起作用。您必须旋转具有 WheelCollider 附加到的刚体的对象。

假设您的汽车有一个刚体,解决方案是确保汽车刚体的 X 轴方向与车轮碰撞器所需的 X 轴方向相匹配。

基于这篇文章:

https://forum.unity.com/threads/unity-5-wheelcollider-wrong-rotation.349596/#post-2264801

<块引用>

WheelColliders 总是指向“向前”和“向下”方向作为它们所附着的刚体。 steerAngle 值相对于刚体的向前方向。

但是请记住,您的汽车模型(显示车身的视觉效果)可能与包含车轮碰撞器所连接的刚体的对象具有不同的方向。

就我而言,层次结构看起来像这样:

  • 主场景
    • 车根
      • 汽车模型
      • 轮对撞机
        • Wheel_FR
        • Wheel_FL
        • Wheel_RR
        • Wheel_RL

CarRoot 上有一个刚体。当我旋转它时,它会旋转车轮碰撞器。这也会旋转汽车模型。这不好。所以我不得不:

  1. 取消 CarModel 和 WheelColliders 的父项(使它们成为 MainScene 的子项)
  2. Y 轴上将 CarRoot 旋转 90 度(使其 X 轴与 WheelCollider 的 X 轴对齐)
  3. 再次将 CarModel 和 WheelColliders 设为 CarRoot 的子代。

这是为我做的。

附言对不起,如果这有点像死尸。但这仍然没有答案。

答案 3 :(得分:1)

我在这方面遇到了很多麻烦,因为 Blender 中的导出设置或旋转都没有为我解决这个问题。不过我最终找到了解决方案。创建一个空的游戏对象,并将刚体、网格过滤器和网格碰撞器附加到它。然后将模型作为空游戏对象的父级,然后尝试添加轮对撞机。 Wheels 相对于刚体的 transform.up 和 transform.forward,因此将刚体置于默认设置上可以解决所有问题。