在Unity中,我有一个普通的RawImage

(它只是坐在Panel上)
我有一个png,mask.png,它只是透明的白色形状。
你是如何屏蔽RawImage的?
我已经在很多方面尝试过Mask,SpriteMask,但是它无法工作。
即使是RectMask2D也可以(以方形的形状遮掩),但它似乎不起作用吗?
Mask还是SpriteMask?秘密是什么?
发布于 2020-07-14 13:05:57
RawImage组件应该像普通的Image组件一样使用掩码。假定选中了复选标记Maskable。
请注意,Mask或rect Mask 2D应该是您试图掩码的(Raw)映像的父级。层次结构应该如下所示:
Canvas<br>
| MaskObject (Contains (Raw)Image and Mask or Rect Mask 2d components)
| Object to mask (Contains the (raw)image to mask)

注意白色方块(图像)是如何被红色方块(面具)切断的。
掩蔽图像和蒙面图像之间的组件类型也不需要匹配。RawImage可以屏蔽Image,反之亦然。

掩蔽对象再次以红色显示,其中白色是蒙面对象。gameobject的名称显示该游戏对象的已使用(原始)图像组件。
唯一的例外是SpriteMask,它只使用Sprite Renderer组件。
没有太多的解释来自团结的面具..。这是最接近解释的
关于面具的更多信息:
掩码的工作方式是比较两个(或更多)对象的模具缓冲区的ref(erence)值(在本例中是图像),并使用stencil (Arison)函数只绘制模板缓冲区等于1的像素。这意味着可以通过创建一个着色器并实现模板缓冲器来创建您自己的掩模实现,例如,当您想要反转掩码之类的东西时,这是很有用的,在这里,除了掩码所在的地方(在图像中创建洞),像素都会被绘制。)
发布于 2021-10-22 14:26:06
只需将原始图像作为UI图像的子图像,并将父图像称为“掩码”,然后在“掩蔽”图像中放置任意形状的雪碧。转到‘添加组件’,然后'UI‘,然后添加’掩码‘。请看这个链接https://learn.unity.com/tutorial/ui-masking#6032b6fdedbc2a06c234cd3e --它对我很有用
https://stackoverflow.com/questions/62895347
复制相似问题