Unity/오류 해결

[Unity] UI에 커스텀 머티리얼을 사용하고 마스크 기능이 안될 때

달시_Dalsi 2023. 4. 26. 16:50

커스텀 머티리얼의 쉐이더 코드에 밑의 코드를 알맞게 추가해주면 해결된다.

Shader "Custom/Opaque"
  {  
     Properties
     {
         [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
         _Color ("Tint", Color) = (1,1,1,1)
         
         // required for UI.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
     }
     SubShader
     {
         Tags 
         { 
             // ...
         }
         
         // required for UI.Mask
         Stencil
         {
             Ref [_Stencil]
             Comp [_StencilComp]
             Pass [_StencilOp] 
             ReadMask [_StencilReadMask]
             WriteMask [_StencilWriteMask]
         }
          ColorMask [_ColorMask]
         
         Pass
         {
             // ...
         }
     }
  }