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]
  }

結果入下:
在這裏插入圖片描述

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