SetKeyword(in LocalKeyword, bool)
Sets the state of a local shader keyword for this material.
Read time 1 minuteLast updated 5 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.CoreModule
SetKeyword(LocalKeyword, bool)
public void SetKeyword(in LocalKeyword keyword, bool value)
Parameters
Remarks
Shader keywords determine which shader variants Unity uses. For information on working with local shader keywords and global shader keywords and how they interact, see Using shader keywords with C# scripts.
When is , this function calls Material.EnableKeyword. Otherwise, it calls Material.DisableKeyword.
valuetrueIf the LocalKeyword does not exist in the Shader.keywordSpace for the shader that this material uses, this function has no effect.
The following example creates and caches a , and provides a function to toggle its state.
LocalKeywordusing UnityEngine;using UnityEngine.Rendering;public class MaterialKeywordExample : MonoBehaviour{ public Material material; private LocalKeyword exampleFeatureKeyword; void Start() { // Get the instance of the Shader class that this material uses var shader = material.shader; // Create and cache the LocalKeyword exampleFeatureKeyword = new LocalKeyword(shader, "EXAMPLE_FEATURE_ON"); } public void ToggleExampleFeature() { // Get the current state of the local keyword bool state = material.IsKeywordEnabled(exampleFeatureKeyword); // Toggle the state material.SetKeyword(exampleFeatureKeyword, !state); }}
Additional Resources: Shader variants and keywords, LocalKeyword, GlobalKeyword, Material.EnableKeyword, Material.DisableKeyword, Shader.keywordSpace, Material.IsKeywordEnabled, Material.enabledKeywords, Material.shaderKeywords.