Unity3d 游戏对象获取相对于祖父母的位置

Unity3d 游戏对象获取相对于祖父母的位置,unity3d,Unity3d,transform.localPosition提供相对于父对象的位置transform.parent.transform.localPosition提供父对象相对于祖父母的位置。我需要的是子对象的局部位置,但是相对于祖父母,而不是相对于父对象。如何在统一中实现这一点?您可以使用在任何变换的局部空间中获得任何世界位置 Vector3 grandParentLocalPosition = transform.parent.parent.InverseTransformPoint(transf

transform.localPosition
提供相对于父对象的位置
transform.parent.transform.localPosition
提供父对象相对于祖父母的位置。我需要的是子对象的局部位置,但是相对于祖父母,而不是相对于父对象。如何在统一中实现这一点?

您可以使用在任何变换的局部空间中获得任何世界位置

    Vector3 grandParentLocalPosition = transform.parent.parent.InverseTransformPoint(transform.position);

这将获得祖父母变换(
transform.parent.parent
),然后将当前对象的世界位置(
transform.position
)放入祖父母的局部空间。

我不理解
InverseTransformPoint
的文档。你写的东西给了我祖父母相对于孙子的位置,还是相反?@Ceolando它给了你孙子的位置(
transform.position
)相对于祖父母的位置和旋转(
transform.parent.parent
)。我试图为你澄清我的措辞@Ceolando,如果这能让我的答案更清楚,请告诉我。@1是的,我已经接受了你的答案。非常感谢,我成功了!