Unity中UGUI使用Mask组件时图片边缘锯齿化严重的问题

最近在项目中有需要用到Mask的理念来实现的一个效果,但是在使用了Unity原生的Mask组件之后发现了一个严重的问题。

Unity中UGUI使用Mask组件时图片边缘锯齿化严重的问题_第1张图片

就是边缘部分的锯齿化很严重。

经过多方查阅资料,得知原因是 mask的工作原理是根据alpha通道来计算,如果一个像素点里面是全透明的,那么做成mask之后这个点就不会透视看到下面的物体,如果这个像素点里不是全透明的,即完全不透明或者半透明,那么做成Mask之后这个点就可以透视看到下面一层的物体。

由于Mask的这个原理,它并不会将alpha值进行过渡处理,所以会出现两个问题,一个是锯齿化严重,一个是如果某个点是半透明接近透明的状态,也会很清晰得透视到mask下面的物体,看起来就像是超出范围一样。

 

所以,我们的softMask的作用就是解决掉这两个问题,尽可能得消除掉锯齿和半透明点的处理。

步骤一:

下载UnitySoftMask,解压,并直接导入自己的工程。

步骤二:

创建一张图片用作Mask,并为其添加SoftMask组件,并将需要显示的图片放在它的子节点

Unity中UGUI使用Mask组件时图片边缘锯齿化严重的问题_第2张图片

这时我们就可以看到效果,对比前面使用Unity原生mask的效果,简直不要太好。

Unity中UGUI使用Mask组件时图片边缘锯齿化严重的问题_第3张图片

 文章最上方有资源信息。

你可能感兴趣的:(Unity,游戏开发)