Version: Unity 6.7 Alpha (6000.7)
Language : English
Shader in ShaderLab reference
Properties block reference in ShaderLab

Shader block in ShaderLab reference

Important: The Built-In Render Pipeline is deprecated and will be made obsolete in a future release.
It remains supported, including bug fixes and maintenance, through the full Unity 6.7 LTS lifecycle.
For more information on migration, refer to Migrating from the Built-In Render Pipeline to the Universal Render Pipeline and Render pipeline feature comparison.

A Shader object is a Unity-specific concept; it is a wrapper for shader programs and other information. It lets you define multiple shader programs in the same file, and tell Unity how to use them.

A Shader object has a nested structure; it organizes information into structures called SubShaders and Passes.

Inside the Shader block, you can:

Render pipeline compatibility

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

Syntax

Signature Function
Shader "<name>"
{
    <optional: Material properties>
    <One or more SubShader definitions>
    <optional: custom editor>
    <optional: fallback>
}
Defines a Shader object with a given name.

Additional resources

Shader in ShaderLab reference
Properties block reference in ShaderLab