0

我在 Unity3D 中有一个滚动视图,其中包含我的所有元素。它只水平滚动,并且在任何时候都可以看到多个子元素。大多数情况下这将是 6,在极少数情况下可能是 5。设置是 2 行,每行 3 个对象

例子: 在此处输入图像描述

正如您所看到的,大多数时候它是 6 个(以及 7/8 号的一部分)对象,在极少数情况下它可能是 5 个。(例如,接近尾声)

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

在此处输入图像描述

4

1 回答 1

0

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

于 2019-04-12T12:30:48.930 回答