对齐滚动视图元素

时间:2019-04-11 13:47:19

标签: c# user-interface unity3d scrollview unity-ui

我在Unity3D中有一个滚动视图,其中包含所有元素。它仅水平滚动,并且随时可以查看多个子元素。大多数情况下为6,在极少数情况下为5。设置为2行,每行3个对象

示例: enter image description here

如您所见,大多数时候它是6个对象(一部分是7/8),在极少数情况下可以是5个对象。(例如,到最后)

我想要的是:拖动对象时,它总是捕捉到6个居中的对象。因此,当我有12个对象并且用户将窗口拖动一点时,我希望它捕捉到最近的6个窗口。我使用Unity的Scroll Rect窗口及其下方的水平布局组来获得当前的结果。使用以下设置:其中“ GameGrid”只是一个空对象,上面带有水平布局组。在游戏网格下方,将在运行时制作游戏图块。

enter image description here

1 个答案:

答案 0 :(得分:0)

使用ScrollView,并使您的对象成为ScrollView-> Viewport-> Content对象的子对象。现在,您可以控制Content RectTransform的anchoredPosition及其所有子代的位置。通过将Content RectTransform sizeDelta.x除以给定的宽度并使用正确的位置值,可以轻松计算“快照”位置。