Skip to content

Instantly share code, notes, and snippets.

@unitycoder
Last active September 2, 2024 11:40
Show Gist options
  • Save unitycoder/8215b794eddeb0b331e14a4869c1f696 to your computer and use it in GitHub Desktop.
Save unitycoder/8215b794eddeb0b331e14a4869c1f696 to your computer and use it in GitHub Desktop.
unity toggle KeywordEnum from script (shader feature)
[KeywordEnum(Off, On)] _UseSomething ("Use Something",float) = 0
#pragma shader_feature _USESOMETHING_ON
#pragma shader_feature _USESOMETHING_OFF
#ifdev _USESOMETHING_ON
..
#endif
public void ToggleSomething(bool state)
{
var kw = "_USESOMETHING_" + (state ? "ON" : "OFF");
var kw2 = "_USESOMETHING_" + (!state ? "ON" : "OFF");
Debug.Log("Enable: "+kw + " , Disable: " + kw2);
// NOTE this is persistent for current editor session (keeps value between play mode), so should be reset on stop or awake
Shader.EnableKeyword(kw);
Shader.DisableKeyword(kw2);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment