首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在统一中掩蔽UI.RawImage?

如何在统一中掩蔽UI.RawImage?
EN

Stack Overflow用户
提问于 2020-07-14 12:35:19
回答 2查看 7.7K关注 0票数 2

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

(它只是坐在Panel上)

我有一个png,mask.png,它只是透明的白色形状。

你是如何屏蔽RawImage的?

我已经在很多方面尝试过MaskSpriteMask,但是它无法工作。

即使是RectMask2D也可以(以方形的形状遮掩),但它似乎不起作用吗?

  • 我应该使用Mask还是SpriteMask
  • 如果是这样的话,你是否必须/不必在面具上设置材料?在RawImage上?
  • 我假设面具游戏对象应该是RawImage的父级,但是?

秘密是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-14 13:05:57

RawImage组件应该像普通的Image组件一样使用掩码。假定选中了复选标记Maskable

请注意,Maskrect Mask 2D应该是您试图掩码的(Raw)映像的父级。层次结构应该如下所示:

代码语言:javascript
复制
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的像素。这意味着可以通过创建一个着色器并实现模板缓冲器来创建您自己的掩模实现,例如,当您想要反转掩码之类的东西时,这是很有用的,在这里,除了掩码所在的地方(在图像中创建洞),像素都会被绘制。)

票数 3
EN

Stack Overflow用户

发布于 2021-10-22 14:26:06

只需将原始图像作为UI图像的子图像,并将父图像称为“掩码”,然后在“掩蔽”图像中放置任意形状的雪碧。转到‘添加组件’,然后'UI‘,然后添加’掩码‘。请看这个链接https://learn.unity.com/tutorial/ui-masking#6032b6fdedbc2a06c234cd3e --它对我很有用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62895347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档