使用车轮作为可配置关节在Unity3d中缩放轮式车GameObject

时间:2014-07-02 09:23:52

标签: unity3d unityscript gameobject

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

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

在执行上述命令之前,我在刚体中启用了isKinematic属性,这些属性是myCar的子元素。我的层次结构如下。

myCar是Parent GameObject。它的孩子是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 gameObject不是刚体,只有它的子体才是刚体。

感谢。

1 个答案:

答案 0 :(得分:0)

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