UI特效应用Mask剪裁

公司的特效做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]
  }

结果入下:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章