可以自定义设置游戏内监控模式形状的软件吗

美术提了一个在按钮上加粒子特效的需求因此需要做下裁剪的功能,防止粒子特效超框(如上图)一开始想的是用,给shader一个按钮位置以及长宽的Vector计算按钮区域来计算遮挡。但是发现那个按钮的图片是一个梯形的(如图)空白的部分也不能出现粒子,这就麻烦了

后来查了下发现shader有一个Stencil的功能,叫莋模板缓存可以实现我们想要的需求(不过似乎比较耗费性能)。这个也是Mask组件的实现原理不过mask可以遮挡UI组件,对粒子无法产生效果因此需要我们自己来处理下。

首先先来看看UGUI的Mask功能首先创建一个Image,取名ImageMak用于放遮挡的图片,然后我们再创建一个Image作为其子控件用於放需要被遮挡的图片,如图:

然后我们在ImageMask上添加Mask组件即可即可实现遮挡的效果。你会发现两个Image的UI/Default Shader的几个Sentcil参数发生了变化这也是我们後面要重点讲的。

这一篇我们首先具体讲讲Sentcil的一些属性,由于内容较多具体的内容实现留到下一篇再详细讲解

Sentcil,模板缓存可以用于实現每像素的保存或丢弃

 

0
当模板测试和深度测试都通过时,进行的处理操作
当模板测试和深度测试都失败时进行的处理操作
当模板测试通过,深度测试失败时进行的处理操作
模板测试或深度测试不可用
模板测试或深度测试 永远不通过
模板测试或深度测试 小于 则通过
模板測试或深度测试 等于 则通过
模板测试或深度测试 小于等于 则通过
模板测试或深度测试 大于 则通过
模板测试或深度测试 不等于 则通过
模板测試或深度测试 大于等于 则通过
模板测试或深度测试 永远通过

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信