Version: 2020.3
ShaderLab command: Stencil
ShaderLab command: GrabPass

ShaderLab command: UsePass

The UsePass command inserts a named Pass from another Shader object. You can use this command to reduce code duplication in shader source files.

For information on adding a name to a Pass in ShaderLab code, see ShaderLab: adding a name to a Pass.

렌더 파이프라인 호환성

Feature name 빌트인 렌더 파이프라인 유니버설 렌더 파이프라인(URP) 고해상도 렌더 파이프라인(HDRP) Custom SRP
UsePass 지원 지원 지원 지원

사용법

Signature 기능
UsePass "Shader object name/PASS NAME IN UPPERCASE" Inserts the named Pass from the named Shader object.

If the named Shader object contains more than one SubShader, Unity iterates over the SubShaders until it finds the first supported SubShader that contains a Pass with the given name. For information on how Unity determines whether a SubShader is supported, see Shader objects introduction.

If the SubShader contains more than one Pass with the same name, Unity returns the last Pass it finds.

If Unity does not find a matching Pass, it shows the error material.

예제

This example code creates a Shader object called NamedPass, which contains a Pass called ExampleNamedPass.

Shader "Examples/ContainsNamedPass"
{
    SubShader
    {
        Pass
        {    
              Name "ExampleNamedPass"
            
              // The rest of the Pass contents go here.
        }
    }
}

This example code creates a Shader object called UseNamedPass, which uses the named Pass from the example code above.

Shader "Examples/UsesNamedPass"
{
    SubShader
    {
        UsePass "Examples/ContainsNamedPass/EXAMPLENAMEDPASS"
    }
}
ShaderLab command: Stencil
ShaderLab command: GrabPass
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961