Version: 2019.4
ShaderLab: defining material properties
ShaderLab: assigning a custom editor

ShaderLab: assigning a fallback

This page contains information on using a Fallback block in your ShaderLabUnity’s language for defining the structure of Shader objects. More info
See in Glossary
code to assign a fallback ShaderA program that runs on the GPU. More info
See in Glossary
object. For information on how a Shader object works, and how Unity chooses when to use a fallback, see Shader objects introduction.

Render pipeline compatibility

Feature name Built-in Render Pipeline Universal Render Pipeline (URP) High Definition Render Pipeline (HDRP) Custom SRP
ShaderLab: Fallback block Yes Yes Yes Yes

Using the Fallback block

To assign a fallback, you place a Fallback block inside a Shader block.

Signature Function
Fallback "<name>" If no compatible SubShaders are found, use the named Shader object.
Fallback Off Do not use a fallback Shader object in place of this one. If no compatible SubShaders are found, display the error shader.

Fallback code examples

This example code demonstrates the syntax for creating a Shader object that has a named fallback.

Shader "Examples/ExampleFallback"
{
    SubShader
    {
        // Code that defines the SubShader goes here.

        Pass
        {                
              // Code that defines the Pass goes here.
        }
    }

    Fallback "ExampleOtherShader"
}
ShaderLab: defining material properties
ShaderLab: assigning a custom editor