Shader Feature
设置Keyword
//0:Red 1:Green 2:Blue
Mat.SetInt(“_Color”,0);
需要在创建时进行设置,运行时不可设置
Shader "Unlit/KeywordEnum"
{Properties{[KeywordEnum(Red,Green,Blue)] _Color("Color",int) = 0}SubShader{Pass{HLSLPROGRAM#pragma vertex vert#pragma fragment frag//Each keyword must start with the property name followed by _<Enum Value>. All in uppercase.#pragma shader_feature _COLOR_RED _COLOR_GREEN _COLOR_BLUE#include "UnityCG.cginc"float4 vert(float4 positionOS : POSITION) : SV_POSITION{return UnityObjectToClipPos(positionOS);}float4 frag() : SV_Target{float4 color;#ifdef _COLOR_REDcolor = float4(1, 0, 0, 1);#elif _COLOR_GREENcolor = float4(0, 1, 0, 1);#elif _COLOR_BLUEcolor = float4(0,0,1,1);#endifreturn color;}ENDHLSL}}
}