Unity 2d 的 SpriteMask为游戏表现带来多种可能性

孙广东  2017.7.22

http://blog.csdn.NET/u010019717



          SpriteMask 是Unity 2017.1 开始添加2d功能!,    SpriteMask 影响的是  Sprite Renderder 组件
           
          Mask 默认印象的范围(就是不勾选 Custom Range )是  所有Sprite 。
如果勾选了, 就可以设置范围了,    层级的范围的优先级是    Sorting Layer -》 Order in  Layer  这样的顺序
       还有一点需要注意。  order in layer  是大于   和 小于的范围, 等于是不会被影响的!
比如Sprite 是  Default - 0,   Mask范围是   Front    Default - 5, Bask   Default - 0 .  这样的设置不会影响到Sprite。
    我有一个Mask是  圆形:


如果选择  :


如果选择:



1、  最常见的镂空效果
   上方选择了 Visible  Outside  Mask,  就是镂空效果!!



2、 在墙上钻一个洞


      原理是对墙 做了镂空操作了!         Player 有个子对象,它是Mask ,   跟随移动,  这个Mask 会影响到 墙!  
Player 是没有选中  受到Mask 影响的!
这个子对象mask 的设置:


Player 的设置:

还有墙的设置:





3、 跟多类似于幻灯片切换效果
          主要是控制  Mask 的 这个  Alpha 值


但是 Mask 不是普通的图片而是   灰度图像 !!!   这个就需要美术了!
          然后  贴图的导入设置如下:


          还是使用之前的Mask 图像, 按照上图设置为   From Gray  Scale  !
Alpha Cutoff  =   0.589 时的效果:

Alpha Cutoff  =  0.622 时的效果:



4、影响类似特效
特效要使用Mask




但是有一个问题, 这种:  多个特效, 多个Mask 的情况。   本来像 一个Mask 只是控制一个特效。


怎么解决?
         让特效 和 Mask  在一组内