UsePass 커맨드는 다른 셰이더 오브젝트의 이름이 지정된 패스를 삽입합니다. 이 커맨드를 사용하여 셰이더 소스 파일의 코드 중복을 줄일 수 있습니다.
ShaderLab 코드의 패스에 이름을 추가하는 방법에 대한 자세한 내용은 ShaderLab: 패스에 이름 추가를 참조하십시오.
기능 이름 | 빌트인 렌더 파이프라인 | 유니버설 렌더 파이프라인(URP) | 고해상도 렌더 파이프라인(HDRP) | 커스텀 SRP |
---|---|---|---|---|
UsePass | 지원 | 지원 | 지원 | 지원 |
서명 | 기능 |
---|---|
UsePass "Shader object name/PASS NAME IN UPPERCASE" |
이름이 지정된 셰이더 오브젝트의 이름이 지정된 패스를 삽입합니다. 이름이 지정된 셰이더 오브젝트가 두 개 이상의 서브셰이더를 포함하는 경우, Unity는 주어진 이름의 패스가 포함된 지원되는 첫 서브셰이더를 찾을 때까지 서브셰이더에서 반복을 수행합니다. Unity가 서브셰이더의 지원 여부를 어떻게 결정하는지 알아보려면 셰이더 오브젝트 소개를 참조하십시오. 서브셰이더가 같은 이름의 패스를 두 개 이상 포함하는 경우, Unity는 마지막으로 찾은 패스를 반환합니다. 일치하는 패스를 찾지 못하는 경우, Unity는 오류 머티리얼을 표시합니다. |
이 예제 코드는 ExampleNamedPass라는 패스를 포함하는 셰이더 오브젝트인 NamedPass를 생성합니다.
Shader "Examples/ContainsNamedPass"
{
SubShader
{
Pass
{
Name "ExampleNamedPass"
// The rest of the Pass contents go here.
}
}
}
이 예제는 상기 예제 코드의 이름이 지정된 패스를 사용하는 UseNamedPass라는 셰이더 오브젝트를 생성합니다.
Shader "Examples/UsesNamedPass"
{
SubShader
{
UsePass "Examples/ContainsNamedPass/EXAMPLENAMEDPASS"
}
}