unity3d - 如何在 Unity 中的静态图像上创建可滚动蒙版?
问题描述
假设我有一个带有面板的画布,其中包含纯白色图像。被提到的面板隐藏,有一个带有彩色图像的面板。现在让我们使用一个滚动矩形,用一些较小的面板作为内容填充它,为每个面板添加一个遮罩,然后将滚动矩形放在纯白色面板顶部的面板中。
我怎样才能使这些可滚动的小面板掩盖白色面板并在下面显示彩色面板,而白色面板和彩色面板是静态的并且不会移动?
我很清楚这样一个事实,白色面板和彩色面板必须是遮罩组件的子级,这就是问题所在,因为那样它们会滚动。
我在网上搜索了一下,但只能找到与 scrollrect 视口遮罩相关的东西,但没有将遮罩放入 scrollrect 中。
编辑:一种方法是通过使用每个小面板作为蒙版来直接屏蔽彩色面板,并使彩色面板在每个小面板内滚动 *-1 以对抗父滚动,但这似乎是一个糟糕的解决方案
感谢您的任何建议<.<
解决方案
使用面罩或更好的矩形面罩 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
推荐阅读
- appium - 从 android RecyclerView 获取所有元素的详细信息
- mysql - 不知道如何在 sqlalchemy 中创建这个 MySQL 语句
- sparql - 如何在具有数据属性的 SPARQL 查询中应用过滤器
- excel - 将特殊字符转换为字母数字的宏
- wordpress - 检查重力形式wordpress状态的功能
- objective-c - 为什么我的 MTKview 会像顶部有黑色覆盖一样被绘制?
- python - 使用 pandas 读取嵌套 json 中的计数值
- android - 如何使用 AlarmManager 显示闹钟响铃的剩余时间?
- javascript - 我们可以在 Javascript React Native 中使用 import 或 require 变量吗
- python - Python:如何将具有相同变量类型的多个列表合并到一个列表列表中?