如果我将一个对象指定为游戏对象,我就无法让 RectTransform 工作。如何解决?

If I assign an Object as GameObject, I cant get the RectTransform to work. How to fix that?

我想通过这行代码给我的父 GameObject Inventory 特定的记录坐标: Inventory.GetComponent<RectTransform>().position = new Vector3(500f, 0f, 0f);

在编辑器中,对象 Inventory 被指定为 GameObject,因此它不断将 rec-coordinates 更改为 world-coordinates。我试过将 Inventory 分配为 TransformRectTransform 但它说存在不匹配在类型中。

我该如何解决这个问题,是通过修复我的代码还是将其分配为不同的代码?

您应该修改 RectTransform 的 localPosition:

Inventory.GetComponent<RectTransform>().localPosition = new Vector3(500f, 0f, 0f);

甚至没有 RectTransform(localPositions好像是inherited/shared在Transform&RectTransform之间):

Inventory.transform.localPosition = new Vector3(500f, 0);

使用anchoredPosition移动RectTransform个对象。

GetComponent<RectTransform>().anchoredPosition = new Vector2(500f, 0);

记住它的变量取 Vector2.