公司的特效做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]
}
結果入下: