c# - 如果我将一个对象指定为 GameObject,我无法让 RectTransform 工作。如何解决?

我想通过这行代码给我的父游戏对象库存特定的重新坐标:Inventory.GetComponent<RectTransform>().position = new Vector3(500f, 0f, 0f);

在编辑器中,对象 Inventory 被指定为 GameObject,因此它不断将记录坐标更改为世界坐标。我尝试将 Inventory 分配为 Transform 和 RectTransform 但它说类型中存在不匹配。

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

回答1

您应该修改 RectTransform 的 localPosition:

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

即使没有 RectTransform (localPositions 似乎在 Transform Rect Transform 之间被继承/共享):

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

回答2

使用 anchoredPosition 移动 RectTransform 对象。

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

请记住,它的变量采用 Vector2

相似文章

unity3d - Unity 产卵问题

我想在场景中只有2个对象。当我调用该方法时,它会生成2个对象,没问题,但是当我销毁其中一个对象并再次调用该方法时,它会生成另一个2,所以在我的场景中有3个如何限制或检查是否已经有2个对象,因此它会生成...

随机推荐

最新文章