先上效果图
![](http://imgsrc.baidu.com/forum/w%3D580/sign=a37afb35209759ee4a5060c382fb434e/6b5e4ce736d12f2e12b8315849c2d562843568ff.jpg)
新的UI系统里有个Mask的组件,可以根据Image组件的图片透明通道创建蒙版。
但是有个问题,这个Mask的工作原理其实就是在alpha<0.01的地方剪掉了像素(在编辑器那里就是颜色的A值小于2.55,这也是在使用Mask如果将A值设置小于2.55会使所有子节点都消失的原因,因此Mask那里才有一个“Show Mask Graphic”勾选项),矩形的还好,如果需要弧形的边缘就会出现难看的锯齿。
![](http://imgsrc.baidu.com/forum/w%3D580/sign=96c3a8007df40ad115e4c7eb672d1151/c01014f431adcbefeab1e13eaaaf2edda2cc9fb7.jpg)
而且有时也会需要逐渐模糊消失的效果,Mask就无法满足了。
最近在公司做的项目刚好需要模糊的边缘,所以做了这个东西。
与Mask类似,可以使子节点中的Image和Text都进入一个矩形蒙版中(目前只有矩形线性的渐变)
使用方法:
将SmoothMask类丢到Canvas之下的对象上,将Canvas对象放到CanvasRect中
在带有SmoothMask类的对象上创建子物体,如果发现蒙版并没有起作用,对SmoothMask点右键,选择
Flush Child Material Array
修改OffsetRect和SmoothRect数值调整边缘效果。
![](http://imgsrc.baidu.com/forum/w%3D580/sign=509b0110912bd40742c7d3f54b889e9c/e7b1898fa0ec08fa08828c9f5fee3d6d54fbdabe.jpg)
问题:
做完之后我加了一个ScrollRect的组件,发现这时ScrollRect接受点击拖拽的响应区域超出了ScrollRect的区域,结果就是无奈的又加了一个Mask来使其正常……
如果发现蒙版并没有起作用,对SmoothMask点右键,选择Flush Child Material Array(因为很重要,所以又说一遍)。
PS:
在这些东西之上还可以继续加入各种曲线的边缘消失方式,还可以使用贴图来获取Alpha通道数据来实现任意形状的逐渐消失的边缘。
但我现在用不上,所以不管了。
![](http://imgsrc.baidu.com/forum/w%3D580/sign=a37afb35209759ee4a5060c382fb434e/6b5e4ce736d12f2e12b8315849c2d562843568ff.jpg)
新的UI系统里有个Mask的组件,可以根据Image组件的图片透明通道创建蒙版。
但是有个问题,这个Mask的工作原理其实就是在alpha<0.01的地方剪掉了像素(在编辑器那里就是颜色的A值小于2.55,这也是在使用Mask如果将A值设置小于2.55会使所有子节点都消失的原因,因此Mask那里才有一个“Show Mask Graphic”勾选项),矩形的还好,如果需要弧形的边缘就会出现难看的锯齿。
![](http://imgsrc.baidu.com/forum/w%3D580/sign=96c3a8007df40ad115e4c7eb672d1151/c01014f431adcbefeab1e13eaaaf2edda2cc9fb7.jpg)
而且有时也会需要逐渐模糊消失的效果,Mask就无法满足了。
最近在公司做的项目刚好需要模糊的边缘,所以做了这个东西。
与Mask类似,可以使子节点中的Image和Text都进入一个矩形蒙版中(目前只有矩形线性的渐变)
使用方法:
将SmoothMask类丢到Canvas之下的对象上,将Canvas对象放到CanvasRect中
在带有SmoothMask类的对象上创建子物体,如果发现蒙版并没有起作用,对SmoothMask点右键,选择
Flush Child Material Array
修改OffsetRect和SmoothRect数值调整边缘效果。
![](http://imgsrc.baidu.com/forum/w%3D580/sign=509b0110912bd40742c7d3f54b889e9c/e7b1898fa0ec08fa08828c9f5fee3d6d54fbdabe.jpg)
问题:
做完之后我加了一个ScrollRect的组件,发现这时ScrollRect接受点击拖拽的响应区域超出了ScrollRect的区域,结果就是无奈的又加了一个Mask来使其正常……
如果发现蒙版并没有起作用,对SmoothMask点右键,选择Flush Child Material Array(因为很重要,所以又说一遍)。
PS:
在这些东西之上还可以继续加入各种曲线的边缘消失方式,还可以使用贴图来获取Alpha通道数据来实现任意形状的逐渐消失的边缘。
但我现在用不上,所以不管了。
SmoothMask.unit
大小:16.44KB下载:572次转存:151次