旋转车轮碰撞对象

时间:2020-04-12 13:48:04

标签: unity3d rotation gameobject rigid-bodies collider

我想统一旋转一个车轮碰撞对象。

我复制了前后轮对象以保留位置数据。
它似乎垂直于车轮。我无法使用旋转工具或通过检查器旋转它。

Wheel collider perpendicular

如本post中所述:可以使用一个空的游戏对象进行旋转来解决。

我试图将其附加到一个空的游戏对象上并旋转它。那没起效。 Empty game Object

预先感谢

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。该解决方案比其他答案建议的更简单:

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 的子代。

这是为我做的。

答案 1 :(得分:1)

1-)创建一个胶囊游戏对象, 2-)使它像鞭子。 3-)删除胶囊对撞机并添加网格对撞机,然后选择凸面。 现在您有了像whell这样的对撞机。

4-)在下面放置您的whell游戏对象,并固定大小。 5-)删除胶囊对象中的网格过滤器和网格渲染器。 6-)在创建的基础对象上使用transform.rotate(vector3.right)或向左移动。