Unity - 使用alpha绘制纹理,使其部分消失

时间:2015-11-10 18:42:28

标签: c# unity3d textures alpha

我想要达到这个效果,我想"画"带有alpha的图像,就像删除用户触摸或使用鼠标的部分图像一样。

我不知道从哪里开始。 Example of the effect

2 个答案:

答案 0 :(得分:0)

您可以将每张图片放在单独的Layer上,并告诉您的“橡皮擦画笔”使用LayerMask忽略要删除的图层后面的图层。当用户点击图像时,它会删除第一层图像的一部分,但只留下图像。

归功于来自here声明

  

LayerMask,或计算机科学中的任何“掩码”,是一个使用的整数   它的32位代表不同的标志。虽然它是一个整数,但是   价值并不意味着任何有用的数字。重要的是哪个   标志打开或关闭。

     

在LayerMask的情况下,每个标志(每个位)代表一个层。

每个GameObject的检查器顶部都可以选择图层,您可以在那里添加和命名图层,还可以选择查看它们的不同组合(参见图片)。

enter image description here

答案 1 :(得分:0)

如果你想在单个平面上有2个纹理: - 使用3个纹理(背景,前景,蒙版)制作自定义着色器 - 然后你可以用灰度颜色绘制到那个蒙版纹理,着色器根据蒙版颜色淡化2个纹理(例如,如果颜色是全白,只有前景是可见的)

或者,如果您想在单独的纹理平面后面放置3D对象(并且您只需要擦除现有纹理,而不是将相同的图案绘制回来) - 可以使用任何支持alpha的默认纹理 - 只需在材质中绘制MainTexture,使用颜色绘制alpha 0使区域透明 - 纹理需要在导入器设置中启用[x]读/写以允许在其上绘图

一些相关链接:

搜索统一混合2纹理与面具,统一绘制到纹理等,以找到更多的例子&着色器。