在我的应用程序中,我想在运行时调整我的汽车大小。我用以下命令来做到这一点。
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不是刚体,只有它的子体才是刚体。
感谢。
答案 0 :(得分:0)
可能关节的锚点没有正确更新。虽然Unity v4.3.4f能够根据对象比例更新关节,但我不能保证早期版本能够这样做。