当父母旋转时,孩子的位置不会改变

问题描述:

我觉得这很简单,但我一直在寻找一个在线解决方案,并且找不到合适的结果 - 如果它已被写入,则表示歉意。当父母旋转时,孩子的位置不会改变

我有一个球,它是在其上缓慢旋转是用一个简单的脚本,Y轴:
transform.Rotate(0, Time.deltaTime, 0);

我有连接到这个领域,其与母公司旋转的子对象。到现在为止还挺好。

我已经把枢轴孩子的心,我试图让子对象的位置,因为它是使用父旋转:

void Update() 
{ 
    Debug.Log(this.transform.position); 
} 

然而,更新提供的位置孩子好像没有从父母那里得到。

你们是否可以指出我在获取儿童位置的方向,当它连接到球体父母更新时?

谢谢你的时间和耐心。

不确定要真正理解什么“孩子在附属于球体父母时的位置,因为它更新”意味着但我会试一试。

我想您的层次结构是这样的:

-- Sphere (rotating along its Y axis) 
    -- Child (that rotates with "Sphere" parent) 
    -- Pivot (in the center of the "Child" object and rotating along its Y axis) 
     -- Child2 (that rotates with "Pivot" parent) 

如果你想获得CHILD2相对的位置,你可以做这样的事情:
Vector3 relativePosition = Child2.transform.position - Sphere.transform.position;

您也可以使用Transform.localPosition来获取对象相对于其父对象的位置。在这种情况下,你可以使用这种方式:
Vector3 relativePosition = Child.transform.localPosition + Pivot.transform.localPosition + Child2.transform.localPosition

希望这有助于

+1

你好Kardux,这是非常有用的故障排除 - 我这是位新秀的错误 - 枢轴的孩子在模特的中心。一旦我重置了这个数据透视表并重新导入它 - 它与你以前的一段代码一起工作。基本上我想更新孩子的位置,所以它的代码与线渲染器一起使用。感谢您的时间和耐心。 –

+0

是的,当玩弄皮特对齐对象,错误放置枢轴可以搞砸你的头脑相当快:)很高兴它帮助! – Kardux