unity3d - 滚动在 Unity 中不起作用,它根本没有反应
问题描述
这样的问题,从单词滚动根本不起作用。也就是说,他没有滚动列表,尝试了 YouTube 上的各种教程,阅读了文档,甚至观看了官方课程,但有些东西没有滚动出来。如果您需要屏幕截图或类似的东西,我可以将它们提供给任何图像交换。
解决方案
我不确定您的确切设置,但会为Vertical
滚动提供通用设置。如果您需要帮助将其实施到您的特定 UI,我可以调整或添加其他信息到答案。
为了理解我为什么要进行所有设置,我将分解每个对象和附加的组件、锚定、着色等。
Panel_Mask
卷轴的最外层应该是
Mask
.Mask
如果您的精灵的几何形状不是矩形,您可以使用组件,也可以使用Rect Mask2D
性能更高的组件,但只有当您的 UI 是矩形时才能正常工作。您还会注意到我的遮罩组件的颜色几乎完全清晰。您不需要这样做,但颜色已设置,因此 alpha 为(1/255)
. 如果您Mask
在对象上有 a 并且 alpha 为0
,则所有子对象都不会出现。我ScrollRect
改为在对象上设置滚动的背景颜色。
Panel_Scroll
下一层将是您的
ScrollRect
. 由于Mask
是 UI 的整个可见部分,因此ScrollRect
定义了用户可以在 UI 中滚动的空间。在这种情况下,我将锚点设置为可拉伸以适应最大滚动空间。除此之外,在设置ScrollRect
. 首先,检查您希望滚动的方向,无论是horizontal
还是vertical
。接下来,您将需要分配Viewport
您的 UI。这Viewport
只是用户可以看到滚动的空间。由于有一个Mask
组件,可见部分是 this 中的任何内容Mask
,因此将 指定Panel_Mask
为视口。最后,您需要分配Content
滚动条,这是滚动条将包含并允许用户在其间移动的实际数据。Panel_Scroll
,的子对象Panel_Content
是应该在这里分配的对象。
面板_内容
设置滚动的最后一部分将是我们的内容。内容是保存用户可以滚动的所有数据的对象。由于对象的数量是可变的,因此您需要根据需要分配
HorizontalLayoutGroup
aVerticalLayoutGroup
或GridLayoutGroup
。对于您的情况,VerticalLayoutGroup
当您的卷轴具有垂直运动时,将起到作用。您可以弄乱布局组的特定设置,但对于我的设置,我使滚动内容对象适合其容器的宽度并定义它们自己的高度。我还添加了一些间距来区分滚动中的对象。因为我通常喜欢让内容从我的 UI 容器的顶部开始,我还将内容的锚点设置为拉伸到顶部对齐,这意味着它将填充其父级的宽度并且将始终打开父容器的顶部。最后一个组件是 aContentSizeFitter
,它强制对象调整到其子对象的大小。随着列表中对象列表的增长, 将ContentSizeFitter
随之增长,同样,如果它缩小,Panel_Content
.
图像数据
我的设置没什么特别的,因为它们只是带有子文本的图像组件。根据您希望 UI 的外观,您可以调整此对象上所需的任何内容。
稍后在 gif 中,我展示了场景视图,以显示Mask
当我向上和向下滚动列表时组件是如何工作的。如果您有任何问题,请告诉我。
推荐阅读
- oracle - oracle中触发器执行的奇怪问题
- java - 如何使用 java Scanner 类从 HDFS 读取文件?
- mysql - 需要有关 CREATE VIEW 中的语法错误的帮助
- python - 使用 anaconda 安装 cuDNN 6.0.0 后没有 libcudnn.so.6?
- html - 防止改变颜色的引导脚本(也许更多......)
- r - rpart caret“参数参数不匹配”错误
- c# - 在 Windows 10 内的现有组内固定磁贴
- javascript - 如何从控制器中选择插件中的多个值
- reactjs - 将 redux-token-auth 函数从视图中提升到操作文件?
- php - Url 将变量传递给页面并重写 url