Version: Unity 6.0 (6000.0)
언어 : 한국어
셰이더 태그 소개
셰이더 모델 또는 GPU 기능이 필요하도록 셰이더 설정

패키지가 필요한 셰이더 설정

일부 셰이더는 여러 렌더 파이프라인을 동시에 지원해야 합니다. 서브셰이더패스에 패키지 요구 사항을 추가하면 셰이더 코드가 설치되지 않은 패키지의 포함 파일을 사용하거나 컴파일에 특정한 패키지 버전이 필요한 경우 컴파일 오류를 방지할 수 있습니다.

버전 제한은 일련의 버전 범위를 정의합니다. 설치된 필수 패키지 버전이 범위 내에 없는 경우 패키지 요구 사항이 충족되지 않습니다. 마찬가지로 요구 사항에 Unity 버전 제한 사항 세트가 지정된 경우 현재 Unity 버전에 동일하게 적용됩니다. 버전 제한의 구문에 대한 자세한 내용은 버전 구문을 참조하십시오.

서브셰이더 또는 패스가 프로젝트가 충족하지 않는 패키지 요구 사항을 선언하면 Unity는 해당 서브셰이더 또는 패스를 추가 처리 및 컴파일에서 제외합니다. 이는 프로젝트에 필수 패키지가 포함되지 않거나 포함되었지만 호환 가능한 버전이 아닌 경우에 발생합니다. 셰이더에 요구 사항을 충족하는 서브셰이더가 하나도 없거나 요구 사항을 충족하는 패스가 없는 경우 콘솔 창에 경고 메시지가 표시됩니다.

참고: PackageRequirements 블록은 서브셰이더 또는 패스 내의 다른 모든 선언보다 먼저 나타나야 합니다.

예제

다음 코드 예시는 서브셰이더와 패스에서 패키지 요구 사항을 모두 지정하는 방법을 보여 줍니다. 서브셰이더는 ‘com.my.package’라는 패키지에 대한 단일 패키지 요구 사항을 선언하며 이 패키지의 모든 버전에서 2.2.0부터 작동합니다. 서브셰이더에는 두 개의 패스가 있습니다.

  • 첫 번째 패스의 요구 사항은 다음과 같습니다.

  • 버전 10.2.1 및 버전 11.0 간의 유니버설 렌더 파이프라인 패키지

  • 버전 3.2 이상의 텍스트 메시 프로 패키지

  • 두 번째 패스의 요구 사항은 다음과 같습니다.

  • 버전 8.0 및 버전 8.5 간의 고해상도 렌더 파이프라인 패키지

Shader "Examples/ExampleShader"
{
    SubShader
    {
        PackageRequirements
        {
            "com.my.package": "2.2"
        }
        Pass
        {
            PackageRequirements
            {
                "com.unity.render-pipelines.universal": "[10.2.1,11.0]"
                "com.unity.textmeshpro": "3.2"
            }

            // The rest of the code for the Pass
        }
        Pass
        {
            PackageRequirements
            {
                "com.unity.render-pipelines.high-definition": "[8.0,8.5]"
            }

            // The rest of the code for the Pass

        }
    }
}

추가 리소스

셰이더 태그 소개
셰이더 모델 또는 GPU 기능이 필요하도록 셰이더 설정