公司的特效做UI特效的时候,总喜欢一些奇奇怪怪的shader。
做滚动窗口的时候需要用Mask把多余位置遮住,如果里面有特效的话会像这样透出
修改shader 的代码,使其支持支持stencil,可以实现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
_ColorMask("Color Mask", Float) = 15
[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip("Use Alpha Clip", Float) = 0
Stencil
{
Ref[_Stencil]
Comp[_StencilComp]
Pass[_StencilOp]
ReadMask[_StencilReadMask]
WriteMask[_StencilWriteMask]
}
结果入下: