Version: 2020.3
The Shader class
Shader compilation
How do you use documentation throughout your workflow? Share your experience with us by taking this survey.

Shader assets

Switch to Scripting

A shader asset is an asset in your Unity project that defines a Shader object. It is a text file with a .shader extension. It contains shader code.

Creating a new shader asset

To create a new shader asset, use AssetsAny media or data that can be used in your game or project. An asset may come from a file created outside of Unity, such as a 3D Model, an audio file or an image. You can also create some asset types in Unity, such as an Animator Controller, an Audio Mixer or a Render Texture. More info
See in Glossary
> Create > ShaderA program that runs on the GPU. More info
See in Glossary
from the main menu or the Project View context menu.

Inspector reference

When you select a shader asset in your Unity project, the 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
displays basic information about the Shader object that it defines. It also provides controls for compiling, and inspecting the compiled code.

Shader inspector.
Shader inspector.

Import settings

The Import settings sectino of the Inspector lets you set the default textures for a shader asset. Whenever a new MaterialAn asset that defines how a surface should be rendered. More info
See in Glossary
is created with this shader, these textures are automatically assigned.

Imported object

The Imported object section of the Inspector lets you view and edit settings related to the Shader object itself, and how the shader compiler handles it.

Shader compilation popup menu.
Shader compilation popup menu.

For Surface ShadersA streamlined way of writing shaders for the Built-in Render Pipeline. More info
See in Glossary
, the Show generated code button displays the code that Unity generates from your simplified source file. If you want to customize the generated code, you can just copy and paste it into your shader source file.

You can use the Compile and show code popup menu to:

  • Manually compile all shader variants for a selected graphics API. In the Unity Editor, the shader does not compile all shader variants for all graphics APIs until build time. You can manually force this to check for errors. For more information on what the shader compiler does and when, see Shader compilation
  • Inspect the compiled shader code for selected platforms. This is mostly useful while optimizing shaders for performance; often you do want to know how many low-level instructions are generated. You can paste the generated code into GPU shader performance analysis tools (like AMD GPU ShaderAnalyzer or PVRShaderEditor.
The Shader class
Shader compilation