UI 元素的子元素在父元素在运行时更改位置时不会更改 localPostion

Child of UI element does not change localPostion when parent change position at runtime

我正在使用 Unity UI。

我有一个包含一个图像和一个子图像的父图像 - 当然都在 canvas 中。

我正在使用子图像位置从父图像位置生成敌人。

当我在 运行 时间移动父图像并查看检查器时,我希望看到子位置也与父图像一起移动(因此它会在正确的位置产生敌人),但它不会.

子图像在场景视图中确实随父图像移动,但子图像的 RectTransform 的 LocalPostion 不随父图像改变,因此我无法在正确的位置生成。

我想我漏掉了什么...

场景中任何元素的局部位置都是相对于其父元素的位置,这就是"local"的意思。

元素的最终世界位置是其相对于其父世界位置的本地位置。

假设不涉及rotation/scaling,则世界位置定义为:

transform.position = transform.parent.position + transform.localPosition

所以您所看到的就是所期望的。