首页 > 解决方案 > Unity scrollrect 视口不可调整大小

问题描述

我在 UI 画布上有一个 scrollrect 对象,它有一个视口对象子对象,并且视口对象有一个内容对象子对象,它存储所有要滚动的项目。在此处输入图像描述

我选择了视口以供参考。我想相对于 LevelScroller 调整视口矩形的大小(请参阅层次结构),以便在滚动视图周围有一个边距,以便滚动项不会触及灰色 LevelScroller 矩形的边缘。但是视口矩形不可调整大小。现在结果是这样的:

在此处输入图像描述

看看顶部的按钮(1S-Levitation)是如何被灰色面板切断的。我希望在它被切断的点和灰色框之间有一个边距。

我曾尝试将水平布局组添加到 LevelScroller 以强制添加边距,但这不起作用。为什么视口不可调整大小?

任何帮助表示赞赏

标签: user-interfaceunity3d

解决方案


我相信视口不可调整大小,因为它应该管理您的滚动在用户交互期间的行为方式。例如,您的内容容器中只有一个单元格,用户将其向下拖动,一旦它被释放,它应该移回您的视口顶部,如果您在其中放置边距,它将无法使用完全回到顶部。

但希望您可以通过以下技巧获得保证金:

创建一个名为 Scroller 的空游戏对象并将其设置为 LevelScroller 的父亲。然后,将您的 LevelScroller RectTransform 设置为双向拉伸,并在 RectTransform Top、Bottom、Right 和 Left 字段上设置所需的边距。你应该有这样的东西:

LevelScroller 作为具有 10 像素上下边距的子项

然后创建另一个你的父 Scroller 的空对象子对象,并将其放在 LevelScroller 后面。让我们称之为 BgImage。现在,将 BgImage 的 RectTransform 设置为双向拉伸并向其添加图像。Ta daaa,你现在应该在你的视口上有你的背景和你的边距。

BgImage 作为 LevelScroller 的背景


推荐阅读