LocalKeyword
Represents a shader keyword declared in a shader source file.
Read time 2 minutesLast updated 4 days ago
Definition
- Type: Struct
- Namespace: UnityEngine.Rendering
- Assembly: UnityEngine.CoreModule
- Implements: IEquatable<LocalKeyword>
public readonly struct LocalKeyword : IEquatable<LocalKeyword>
Remarks
Shader keywords determine which shader variants Unity uses. You can use a to enable, disable, or check the state of a local shader keyword. For information on working with local shader keywords and global shader keywords and how they interact, see Using shader keywords with C# scripts.
LocalKeywordWhen you declare a shader keyword in the source file for a Shader or ComputeShader, Unity represents the keyword with a and stores it in a LocalKeywordSpace.
LocalKeywordFor a Shader:
- To set the state of a local shader keyword, use Material.SetKeyword, Material.EnableKeyword, or Material.DisableKeyword.
- To check the state of a local shader keyword, use Material.IsKeywordEnabled or Material.enabledKeywords.
- To access the , use Material.shader to access the Shader that the material uses, and then use Shader.keywordSpace.
LocalKeywordSpace
For a ComputeShader:
- To set the state of a local shader keyword, use ComputeShader.SetKeyword, ComputeShader.EnableKeyword, or ComputeShader.DisableKeyword.
- To check the state of a local shader keyword, use ComputeShader.IsKeywordEnabled or ComputeShader.enabledKeywords.
- To access the , use ComputeShader.keywordSpace.
LocalKeywordSpace
In addition to this, you can also enable or disable a local or global keyword with a . To do this, use CommandBuffer.SetKeyword, CommandBuffer.EnableKeyword, or CommandBuffer.DisableKeyword.
CommandBufferNote: A is specific to a single Shader or ComputeShader instance. You cannot use it with other Shader or ComputeShader instances, even if they declare keywords with the same .
LocalKeywordnameAdditional Resources: Shader variants and keywords, GlobalKeyword.
Constructors
Constructor | Description |
|---|---|
| LocalKeyword(UnityEngine.ComputeShader,System.String) | Initializes and returns a LocalKeyword struct that represents an existing local shader keyword for a given ComputeShader. |
| LocalKeyword(UnityEngine.Shader,System.String) | Initializes and returns a LocalKeyword struct that represents an existing local shader keyword for a given Shader. |
Properties
Property | Description |
|---|---|
| isDynamic | Specifies whether this local shader keyword is used for dynamic branching (Read Only). |
| isOverridable | Whether this local shader keyword can be overridden by a global shader keyword. (Read Only). |
| isValid | Specifies whether this local shader keyword is valid (Read Only). |
| name | The name of the shader keyword (Read Only). |
| type | The type of the shader keyword (Read Only). |
Operators
Operator | Description |
|---|---|
| operator == | Returns true if the shader keywords are the same. Otherwise, returns false. |
| operator != | Returns true if the shader keywords are not the same. Otherwise, returns false. |