UsePass コマンドは、他のシェーダーオブジェクトから名前付きの Pass (パス) を挿入します。このコマンドを使うことで、シェーダーのソースファイル内のコードの重複を減らすことができます。
ShaderLab コードでパスに名前を加える方法については、ShaderLab: Pass に名前を加える を参照してください。
| 機能名 | ビルトインレンダーパイプライン | ユニバーサルレンダーパイプライン (URP) | HD レンダーパイプライン (HDRP) | カスタム SRP | 
|---|---|---|---|---|
| UsePass | 可 | 可 | 可 | 可 | 
| シグネチャ | 機能 | 
|---|---|
| UsePass "Shader オブジェクト名/大文字の PASS NAME" | 名前付き Shader オブジェクトから名前付きパスを挿入します。 指定された Shader オブジェクトが複数の SubShader を含む場合、Unity は指定された名前の Pass を含む最初の適応する SubShader を見つけるまで、SubShader を繰り返し検索します。SubShader がサポートされるかどうかを Unity がどのように判断するかについては、Shader オブジェクトの概要 を参照してください。 SubShader に同名の Pass が複数含まれている場合、Unity は最後に見つけた Pass を返します。 一致する Pass が見つからない場合は、エラーを表示します。 | 
このサンプルコードでは、NamedPass というシェーダーオブジェクトを作成します。その中に ExampleNamedPass というパスを含みます。
Shader "Examples/ContainsNamedPass"
{
    SubShader
    {
        Pass
        {    
              Name "ExampleNamedPass"
            
              //Pass コンテンツの残り部分はここに記述 
        }
    }
}
このサンプルコードでは、UseNamedPass という名前のシェーダーオブジェクトが作成され、上記のサンプルコードの名前付きパスを使用します。
Shader "Examples/UsesNamedPass"
{
    SubShader
    {
        UsePass "Examples/ContainsNamedPass/EXAMPLENAMEDPASS"
    }
}