Version: 2020.3
Asynchronous shader compilation
Conditionals in shaders

Branching, variants, and keywords

Sometimes, you want the same shaderA program that runs on the GPU. More info
See in Glossary
to do different things under different circumstances. When this happens, you use conditionals to define different behavior for different hardware.

This section of the manual contains information about how shader variants and keywords work, and when and how to use them.

Page Description
Conditionals in shaders An introduction to conditionals in shaders, including information on the different types of conditional, and when to use which one.
Branching in shaders An introduction to static and dynamic branching in shaders.
Shader variantsA verion of a shader program that Unity generates according to a specific combination of shader keywords and their status. A Shader object can contain multiple shader variants. More info
See in Glossary
An introduction to shader variants, and information on how to understand and control how many shader variants Unity compiles.
Check how many shader variants you have Using logging and profiling tools to check how many shader variants Unity compiles, and identify ways you can remove (strip) variants.
Shader keywords An introduction to shader keywords, and information on how to use them.
Using shader keywords with C# scripts Working with shader keywords in C# scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
See in Glossary
.
Using shader keywords with the material Inspector Working with shader keywords in the Unity Editor, using the material InspectorA Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info
See in Glossary
.
Shader variant stripping Preventing shader variants from being compiled to reduce build times, file size, shader loading times and runtime memory usage.
Shader variant collections An introduction to shader variant collections, and information on how to use them.
Asynchronous shader compilation
Conditionals in shaders