【发布时间】:2017-09-22 05:54:52
【问题描述】:
【问题讨论】:
【问题讨论】:
为了进一步参考,我写下我的评论作为答案。
我能想到的最简单的解决方案是;添加一个空的gameObject。将轮式对撞机连接到那个空的gameObject。并将空的gameObject 孩子放到您的汽车车轮上。有了这个,你可以旋转空的gameObject,这样你的对撞机就会旋转。 @Programmer 还分享了一个关于 WheelCollider 教程的链接。可以找到here
【讨论】:
您可以做的最好的事情之一是,在导入游戏对象之前,请确保游戏对象是 Y Forward。您可以在导出时在搅拌机中更改它。
【讨论】:
我遇到了同样的问题。但是,在现代版 Unity (2019.4) 中,简单地旋转一个空的父对象是行不通的。您必须旋转具有 WheelCollider 所连接的刚体的对象。
假设您的汽车具有刚体,解决方案是确保汽车刚体的 X 轴方向与车轮碰撞器的所需 X 轴方向相匹配。
根据这篇文章:
https://forum.unity.com/threads/unity-5-wheelcollider-wrong-rotation.349596/#post-2264801
WheelCollider 始终指向“向前”和“向下”方向作为它们所附着的刚体。 steerAngle 值是相对于刚体的前进方向的。
但请记住,您的汽车模型(显示车身的视觉效果)可能与包含车轮碰撞器所连接的刚体的对象具有不同的方向。
在我的例子中,层次结构看起来像这样:
CarRoot 上有一个刚体。当我旋转它时,它会旋转与它碰撞的轮子。这也将旋转汽车模型。这不好。所以我不得不:
这对我有用。
附:抱歉,如果这有点像死神。但这仍然没有答案。
【讨论】:
我为此遇到了很多麻烦,因为 Blender 中的导出设置或旋转都没有为我解决问题。不过,我最终找到了解决方案。创建一个空的游戏对象,并将刚体、网格过滤器和网格碰撞器附加到它。然后将模型作为空游戏对象的父对象,然后尝试添加车轮碰撞器。轮子是相对于刚体的 transform.up 和 transform.forward 而言的,所以将刚体放在默认的东西上可以解决所有问题。
【讨论】: