繁体   English   中英

如何在Unity中的水平布局组中移动UI元素?

[英]How to move UI elements in horizontal layout group in Unity?

我有一个简单的父对象{Buttons Holder},该对象上附加了“水平布局组”组件,因此,当游戏开始时,我在Buttons Holder中实例化了多个按钮,以便它们完美对齐。

举例来说,我实例化了2个按钮,并且我希望在某些时候这2个按钮切换位置,以便第一个按钮转到第二个按钮的位置,而第二个按钮切换到第一个按钮的位置。

这就是我想要做的:

Vector3 pos1 = buttonPrefabs[0].transform.position;
Vector3 pos2 = buttonPrefabs[1].transform.position;

buttonPrefabs[0].transform.position = Vector3.Lerp(pos1, pos2, Time.deltaTime * 2);

我的意思是我不想让他们跳到新的位置,我只是想让他们使用Vector2.lerp或其他工具平稳地移动到新的位置。

由于父对象具有附加的“水平布局组”,因此我无法做到这一点。

请帮助。

当位置由版式组控制时,您无法将其固定到新位置。 我唯一能想到的是

  • 暂时禁用布局组
  • 然后通过例如MoveTowards平滑地移动子对象
  • 更新其子索引值以相应地反映其新顺序
  • 再次启用布局组

一种更复杂的方法将要求您编写自己的布局组,该组具有使子对象切换位置的功能。 这样,即使两个孩子切换位置,您自己的布局组仍可以保持所有其他孩子的正确位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM