答案 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 值相对于刚体的向前方向。
但是请记住,您的汽车模型(显示车身的视觉效果)可能与包含车轮碰撞器所连接的刚体的对象具有不同的方向。
就我而言,层次结构看起来像这样:
CarRoot 上有一个刚体。当我旋转它时,它会旋转车轮碰撞器。这也会旋转汽车模型。这不好。所以我不得不:
这是为我做的。
附言对不起,如果这有点像死尸。但这仍然没有答案。
答案 3 :(得分:1)
我在这方面遇到了很多麻烦,因为 Blender 中的导出设置或旋转都没有为我解决这个问题。不过我最终找到了解决方案。创建一个空的游戏对象,并将刚体、网格过滤器和网格碰撞器附加到它。然后将模型作为空游戏对象的父级,然后尝试添加轮对撞机。 Wheels 相对于刚体的 transform.up 和 transform.forward,因此将刚体置于默认设置上可以解决所有问题。