首页 > 解决方案 > 如何在 Unity 中的静态图像上创建可滚动蒙版?

问题描述

假设我有一个带有面板的画布,其中包含纯白色图像。被提到的面板隐藏,有一个带有彩色图像的面板。现在让我们使用一个滚动矩形,用一些较小的面板作为内容填充它,为每个面板添加一个遮罩,然后将滚动矩形放在纯白色面板顶部的面板中。

我怎样才能使这些可滚动的小面板掩盖白色面板并在下面显示彩色面板,而白色面板和彩色面板是静态的并且不会移动?

我很清楚这样一个事实,白色面板和彩色面板必须是遮罩组件的子级,这就是问题所在,因为那样它们会滚动。

我在网上搜索了一下,但只能找到与 scrollrect 视口遮罩相关的东西,但没有将遮罩放入 scrollrect 中。

编辑:一种方法是通过使用每个小面板作为蒙版来直接屏蔽彩色面板,并使彩色面板在每个小面板内滚动 *-1 以对抗父滚动,但这似乎是一个糟糕的解决方案

感谢您的任何建议<.<

标签: unity3dunity-ui

解决方案


使用面罩或更好的矩形面罩 2d。您将此组件添加到父组件,所有子组件都会根据其“矩形变换”进行屏蔽,该“矩形变换”将显示在编辑器右上角的适用 UI 元素上。您还可以打开和关闭 Gizmo 以查看绿色轮廓。

https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/script-RectMask2D.html

将 rect mask 2d 与 scroll rect 结合起来可以为您提供一些强大的结果,并且绝对可以满足您的需求。

https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/script-ScrollRect.html


推荐阅读