Unity3D:将 child 移动到 parent 轨道

Unity3D: Moving a child to orbit a parent

我做了一个游戏,我制作了两个球体,一个 child 球体和一个 parent 球体。 parent 球体比 child 球体大,我试图让 child 围绕 parent 球体移动。

在下面的代码中,child 球体沿圆周运动。问题是它不会相对于 parent 移动,所以每当我移动 object 的 parent 时,child 会停留并且不再围绕 parent,而是自由移动。我承认这是一个很多问题,但如果有人可以做出贡献,将不胜感激。这是我移动球体的代码(与 parent object 无关):

void Update(){
    timeCounter += Input.GetAxis("Horizontal") * Time.deltaTime; 
    float x = Mathf.Cos (timeCounter);
    float y = Mathf.Sin (timeCounter);
    float z = 0;
    transform.position = new Vector3 (x, y, z);
}

我还打算移动 parent 球体,我希望 child 球体跟随并仍然相对于 parent 球体移动。

whenever I move the parent of the object, the child stays and no longer moves around the parent

那是因为您正在通过

移动球体
transform.position

什么时候应该

transform.localPosition

要么那样做,要么你可以做

transform.position = transform.parent.position + new Vector3 (x, y, z); 

编辑: 就个人而言,我会做后者,甚至不做球体的父级,这样你就可以旋转母球体或独立操纵它,而不会以奇怪的方式影响另一个球体