我有两个游戏对象,sphereOne
和sphereTwo
作为空游戏对象both
的子对象。
我已将此C#代码附加到sphereTwo
void Update ()
{
transform.RotateAround(sphereOne.transform.position, new Vector3(0, 1, 0), 100*Time.deltaTime);
}
这可让sphereTwo
围绕sphereOne
旋转。
当我旋转父游戏对象both
时,它仅在该特定平面上旋转。
如何动态更新旋转球体的变换位置,使其与父对象的旋转位于同一平面上?
答案 0 :(得分:5)
Transform.RotateAround()
中的第二个参数是确定sphereTwo
围绕sphereOne
旋转的平面方向的轴。现在,你将此设置为静态值new Vector3(0, 1, 0)
,基本上是世界的向上矢量。
要让轴取而代之的是基于sphereOne
的方向,请使用其Transform.up
向量 - 这将根据sphereOne
'的世界空间轮换而改变。变换:
void Update ()
{
transform.RotateAround(sphereOne.transform.position, sphereOne.transform.up, 100*Time.deltaTime);
}
(您可以选择使用both.transform.up
,具体取决于具体情况。)
希望这有帮助!如果您有任何问题,请告诉我。