0

在我的应用程序中,我想在运行时调整我的汽车的大小。我使用以下命令来做到这一点。

myCar.transform.localScale = new Vector(x,y,z);

在执行上述命令之前,我在 myCar 的子刚体中启用 isKinematic 属性。我的hyrarchy如下。

myCar 是父游戏对象。它的孩子是 Base、Left_Wheel 和 Right_Wheel。

在这个中,Base、Left_Wheel、Right_Wheel 是刚体,但 myCar Gameobject 不是刚体。所以我在调整 myCar 对象的大小之前启用了所有这 3 个的 isKinematic 属性。

base.rigidbody.isKinematic = true;
leftwheel.rigidbody.isKinematic = true;
leftWheel.rigidbody.isKinematic = true;

这样做之后,我增加了 myCar GameObject 的 localScale 并且整个实体正在按预期重新缩放,但是之后当我禁用刚体中的 isKinematic 属性时,我的两个轮子都转到了默认位置,或者换句话说,它们进入了车内。

我在 FixUpdate 中进行上述所有操作,但我不明白我做错了什么。

任何帮助将不胜感激。请记住,在上面的层次结构中 myCar 游戏对象不是刚体,只有它的子对象是刚体。

谢谢。

4

1 回答 1

0

可能关节的锚点没有正确更新。虽然 Unity v4.3.4f 能够根据对象比例更新关节,但我不能保证早期版本能够这样做。

于 2014-07-22T14:51:32.423 回答