반응형
KeyWordEnum
이 drawer는 인스펙터에 팝업 형식의 메뉴 생성을 할 수 있다.
9가지의 다른 상태들을 구성할 수 있다.
Properties
{
[KeywordEnum(Off,Red,Blue)]
_Options("Options",Float) =0
}
Pass
{
CGPROGRAM
#pragma multi_compile _OPTIONS_OFF _OPTIONS_RED _OPTIONS_BLUE
...
fixed4 frag (v2f i) : SV_Target
{
// sample the texture
fixed4 col = tex2D(_MainTex, i.uv);
#if _OPTIONS_OFF
return col;
#elif _OPTIONS_RED
return col * float4(1,0,0,1);
#elif _OPTIONS_BLUE
return col * float4(0,0,1,1);
#endif
}
ENDCG
}
위의 코드와 같이 CGPROGRAM 내부에 조건을 작성하고서, 해당 조건에 따라 텍스쳐의 색을 변경할 수 있다.
_OPTION_ON
_OPTION_RED
_OPTION_BLUE
Muti_compile
#pragma multi_compile
shader_feature와 달리, 셰이더 내에 있는 모든 배리언트를 내보낼 수 있다.
덕분에 프로그램 실행 시, 셰이더를 여러 상태로 변경이 가능하다.
반응형
'Unity > Shader' 카테고리의 다른 글
ShaderLab 알아보기 (0) | 2022.03.31 |
---|---|
[Material property drawer(4)] PowerSlider , IntRange 사용하기 (0) | 2022.03.30 |
[Material property drawer(3)] Enum 사용하기 (0) | 2022.03.27 |
[Material property drawer(1)] Toggle 사용하기 (0) | 2022.03.25 |
1. 셰이더 기본 (0) | 2020.01.12 |
댓글