Unity 6.3
0 онлайн 20 гостей 3 в системе
Вход

Блок PackageRequirements в ссылке ShaderLab

Для указания требований к пакету для SubShader или Пропуска используется блок PackageRequirements. ShaderLab поддерживает один блок PackageRequirements на SubShader или Пропуск, но каждый блок может указывать несколько требований к пакету.

Совместимость конвейера отображения

Название особенности Universal Render Pipeline (URP) High Definition Render Pipeline (HDRP) Изготовленный на заказ SRP Built-in Render Pipeline
ShaderLab: блок PackageRequirements Да Да Да Да

Синтаксис

Примечание: если вы предоставляете PackageRequirements блока, она должна стоять перед всеми другими заявлениями внутри SubShader или Пройти.

Подпись Функция
PackageRequirements{ [requirement definition]} Определяет требования к пакету Pass или SubShader.

Существует несколько способов объявления требований к пакету. Каждый из них обеспечивает различное поведение.

  • “<имя пакета>”: Указывает, что SubShader или Pass работает с любой версией пакета.
  • “<имя пакета>”: “<ограничения версии>”: Указывает, что SubShader или Pass работает только с подмножеством версий пакета.
  • “<имя пакета>”: “unity=<ограничения версии>”: Указывает, что SubShader или Pass работает только с подмножеством версий Unity и требует пакета с указанным именем.
  • “unity”:“<version restrictions>”: Указывает, что SubShader или Pass работает только с подмножеством версий Unity.

Синтаксис версий

В требованиях пакета ShaderLab версия использует формат major.minor или major.minor.patch. Если вы используете только major.minor, Unity использует 0 для patch. Версии пакета могут также включать приставку -preview или -preview.n, где -preview эквивалентна -preview.0. Версии предварительного просмотра следуют перед версиями, не являющимися предварительными, так что 1.2.3-preview.4 следует после 1.2.2, но перед 1.2.3.

Существует несколько способов указать диапазон версий. Каждый из них обеспечивает различное поведение. Это:

  • <version>: Включает вводимую вами версию и все последующие версии. Например, 1.2.3 включает все версии, начинающиеся с 1.2.3;
  • [<version>]: Указывает точную версию. Например, [1.2.3] включает только версию 1.2.3;
  • [<version1>,<version2>]: Указывает диапазон между <version1> и <version2>. Использование квадратных скобок и круглых скобок приводит к включению или исключению версии соответственно. Открывающая скобка влияет на <version1>, а закрывающая скобка влияет на <version2>. Пример: [1.2.3,2.3.4) включает все версии от 1.2.3 до 2.3.3.

Также можно указать наборы диапазонов версий для одного пакета. Чтобы создать набор диапазонов версий из отдельных диапазонов, используйте точку с запятой в качестве разделителя. Например, [2.0,3.4.5];[3.7];4.0 включает версии от 2.0.0 до 3.4.5, версию 3.7.0 и версию 4.0.0 и выше.

При установке версий для пакета следует учитывать следующие моменты.

  • Версии, диапазоны версий и наборы диапазонов версий не могут содержать дополнительных символов.
  • Диапазон версий не может быть пустым.
  • Наборы диапазонов версий не могут иметь пересечений.
  • Требования к пакетам чувствительны к пробелам.

Если синтаксис не соответствует вышеизложенному, то ограничение версии является недействительным. Дополнительные сведения см. в Настройка шейдера на требование пакета.

Дополнительные ресурсы