Unity3D:将孩子移动到父母的轨道上

tom*_*rge 3 c# position transform unity-game-engine

我做了一个游戏,我制作了两个球体,一个儿童球体和一个父球体.父球体比子球体大,我试图让孩子在父球体周围移动.

在以下代码中,子球体以圆圈形式移动.问题是它不会相对于父对象移动,因此每当我移动对象的父对象时,子对象就会停留并且不再在父对象周围移动,而是自由移动.我接受这个问题很多,但如果有人可以做出贡献,我将不胜感激.这是我移动球体的代码(不是与父对象有关):

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);
}
Run Code Online (Sandbox Code Playgroud)

我还打算移动父球体,我希望子球体跟随并仍然相对于父球体移动.

mak*_*iuk 5

每当我移动对象的父节点时,子节点就会停留并且不再在父节点周围移动

那是因为你正在移动球体

transform.position
Run Code Online (Sandbox Code Playgroud)

什么时候应该

transform.localPosition
Run Code Online (Sandbox Code Playgroud)

无论是那个还是你能做到的

transform.position = transform.parent.position + new Vector3 (x, y, z); 
Run Code Online (Sandbox Code Playgroud)

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