使用UGUI中的Mask的时候,如何正确裁减非默认材质的UI对象

Posted 萌新小L

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用UGUI中的Mask的时候,如何正确裁减非默认材质的UI对象相关的知识,希望对你有一定的参考价值。

转自:http://blog.csdn.net/ykmzy/article/details/51366396

 

mask组件通过对StencilMaterial.Add方法得查看我们知道该方法在对目标材质得_StencilOp,_StencilComp等等属性进行操作,这样操作后才可以实现它得模板裁剪。我们自定义的Shader一般没有这几个属性,所以我们在自己的shader中添加如下代码便可以实现自定义材质得正确Mask了

 

_StencilComp ("Stencil Comparison", Float) = 8

_Stencil ("Stencil ID", Float) = 0

_StencilOp ("Stencil Operation", Float) = 0

_StencilWriteMask ("Stencil Write Mask", Float) = 255

_StencilReadMask ("Stencil Read Mask", Float) = 255

............................................................................

Stencil {

Ref [_Stencil]

Comp [_StencilComp]

Pass [_StencilOp]

ReadMask [_StencilReadMask]

WriteMask [_StencilWriteMask]

}

 

然后在shader面板调一调_StencilComp属性就可以实现遮罩了

以上是关于使用UGUI中的Mask的时候,如何正确裁减非默认材质的UI对象的主要内容,如果未能解决你的问题,请参考以下文章

UGUI 特效怎样在UI上裁剪

unity UGUI 在使用过程中mask 与 置灰shader 冲突

UGUI源码解析——Mask

UGUI源码解析——Mask

UGUI源码解析——Mask

Unity2017.1官方UGUI文档翻译——Mask