滚动在Unity中不起作用,它根本没有反应

Var*_*nov 0 uiscrollview unity-game-engine

这样的问题,从word上滚动根本不行。也就是说,他没有滚动列表,尝试了 YouTube 上的各种教程,阅读文档,甚至观看了官方课程,但有些东西没有滚动出来。如果您需要屏幕截图或类似的东西,我可以将它们提供给任何图像交换。

在此输入图像描述

在此输入图像描述2

在此输入图像描述3

use*_*449 5

我不确定您的确切设置,但会提供滚动的通用设置Vertical。如果您需要帮助将其实现到您的特定 UI,我可以调整答案或向答案添加其他信息。

首先,这是我的层次结构的设置: 层次结构示例

为了理解为什么我要设置好所有东西,我将分解每个对象和附加的组件、锚定、着色等。

面板_遮罩

卷轴的最外层部分应该是一个Mask. Mask如果精灵的几何形状不是矩形,则可以使用组件,或者可以使用Rect Mask2D,它的性能要高得多,但只有当您的 UI 是矩形时才能正常工作。您还会注意到我的蒙版组件的颜色几乎完全透明。您不需要这样做,但颜色已设置,因此 alpha 为(1/255)。如果某个对象上有Mask且 alpha 为0,则所有子对象都不会出现。我改为在对象上设置滚动的背景颜色ScrollRect

面板_滚动

下一层将是你的ScrollRect。由于Mask是 UI 的整个可见部分,因此ScrollRect定义用户可以在 UI 中滚动的空间。在这种情况下,我将锚点设置为拉伸以适合,以最大化滚动的工作空间。除此之外,设置ScrollRect. 首先,检查您希望滚动的方向,要么horizontal要么vertical。接下来,您需要分配ViewportUI 的 。这Viewport只是用户可见滚动的空间。由于有一个Mask组件,可见部分是 this 中的任何内容Mask,因此将 指定Panel_Mask为视口。最后,您需要分配Content滚动的 ,这是滚动将包含并允许用户在其之间移动的实际数据。Panel_Scroll,的子对象Panel_Content是应该在此处分配的对象。

面板_内容

设置卷轴的最后部分将是我们的内容。内容是保存用户可以滚动的所有数据的对象。由于对象的数量可能是可变的,因此您需要根据需要分配HorizontalLayoutGroup,VerticalLayoutGroup或。GridLayoutGroup对于您的情况,VerticalLayoutGroup当您的滚动条具有垂直移动时,将会起作用。您可以修改布局组的特定设置,但对于我的设置,我使滚动内容对象适合其容器的宽度并定义其自己的高度。我还添加了一些间距来区分滚动中的对象。由于我通常喜欢让内容从 UI 容器的顶部开始,因此我还将内容的锚点设置为拉伸到顶部对齐,这意味着它将填充其父容器的宽度并且始终处于打开状态父容器的顶部。最后一个组件是 a ContentSizeFitter,它强制对象调整为其子对象的大小。随着列表中对象列表的增长,ContentSizeFitter也会随之增长,类似地,如果它缩小,Panel_Content.

图像数据

我的设置没有什么特别的,因为它们只是带有子文本的图像组件。根据您希望 UI 的外观,您可以对此对象进行任何所需的调整。

下面是一个作为卷轴的成品的 gif: 实施例2

稍后在 gif 中,我展示了场景视图,以显示Mask当我上下滚动列表时组件如何工作。如果您有任何疑问,请告诉我。

  • 非常感谢,我发现了一个错误,现在一切正常,没有问题。感谢您提供详细的教程,它将对每个寻求这些问题答案的人有用:) (2认同)