UGUI粒子遮罩

一.参考文章:

UnityShader实例09:Stencil Buffer&Stencil Test - lupeng的博客 - 博客频道 - CSDN.NET

二.主要方法:

           应用shader中的模板测试方法(stencil)。首先将遮罩图片的模板缓冲值设置为1(unity默认为0),然后在被遮罩的物体或者粒子的shader中用模板检测方法检测当前缓冲值是否为1,如果为1的话显示像素,如果不为1则不显示。当然这里的1也可以是除0外的其他整数。

三.方法说明:

1.遮罩层shader中的方法:

Stencil

{

Ref 1                     //要比较的缓冲值

Comp Always      //比较方法:不管结果如何总是通过

Pass Replace       //通过后的处理方法:将当前的值替换为比较的值

}

//总体解释:将当前的缓冲区的值与1做对比,然后不管对比结果为何,都将当前的值替换为1。

2.被遮罩物体shader中的方法:

Stencil {

Ref 1                    //要比较的缓冲值

Comp equal        //比较方法:相等

}

//总体解释:如果当前缓冲区的值等于1则通过显示像素,否则不显示

四.实例

        其他具体的参数,参考文章里说明的已经很清楚了,感兴趣的可以仔细看看。我这里直接把例子代码拷贝过来,大家放到工程里就可以用。

MaskUI.shader       //用来替换"UI/Default" shader ,用的时候要给Image加上Mask组件

MaskParticle.shader            //用来替换"Particles/Additive" shader 

下载链接:UGUI粒子遮罩

你可能感兴趣的:(UGUI粒子遮罩)