UGUI粒子遮罩

作者: 香灰 | 来源:发表于2016-07-12 21:04 被阅读0次

    一.参考文章:

    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粒子遮罩

        本文链接:https://www.haomeiwen.com/subject/nwqhjttx.html