Условное включение сборок
Вы можете использовать символы препроцессора для управления компиляцией сборки и включением ее в сборки вашего приложения (включая режим воспроизведения в Редакторе). Вы можете указать, какие символы должны быть определены для сборки, чтобы использовать их в списке Определение ограничений в параметрах Определение сборки:
- Выберите Определение сборки для сборки, чтобы просмотреть ее свойства в Inspector.
- В разделе Определить ограничения нажмите кнопку +, чтобы добавить новый символ в список ограничений.
- Введите имя символа.
- Нажмите Применить.
Дополнительные сведения о том, какие скриптовые символы можно использовать для определения ограничений, см. в Определение ограничений.
Определение символов на основе Unity и версий пакета проекта
Если вам нужно компилировать различный код в сборке в зависимости от того, использует ли проект конкретные версии Unity или пакета, вы можете добавить записи в список Версия определяет. Этот список указывает правила, когда символ должен быть определен. Для номеров версий вы можете указать логическое выражение, которое оценивает определенную версию или диапазон версий.
Чтобы условно определить символ:
Выберите ассет Определение сборки для сборки, чтобы просмотреть ее свойства в Inspector.
В разделе Версия определяет нажмите кнопку +, чтобы добавить запись в список.
-
Установить свойства:
- Если ресурс: Выберите Unity или пакет или модуль, который должен быть установлен для определения этого символа.
- версия является: выражение, которое оценивает определенную версию или диапазон версий. См. Версия Определение выражений для синтаксических правил.
- задать define: Символ скрипта для определения, когда выполнены условия версии.
Результат выражения Версия показывает, к каким версиям выражение оценивает. Если результат показывает Invalid, то синтаксис выражения неправилен.
Нажмите Применить.
Символы, определенные в Определении сборки, находятся только в области действия скриптов сборки, созданных для этого определения.
Примечание: Вы можете использовать символы, определенные с помощью списка Версия определяет как Определение ограничений. Это означает, что вы можете указать, что сборка используется только тогда, когда в проекте также установлены определенные версии данного пакета.
Версия определяет выражения
Выражения можно использовать для указания точной версии или диапазона версий.
Выражение версии использует математические интервальная нотация, где квадратные скобки [] указывает, что диапазон включает конечную точку и скобки () указывают, что диапазон исключает конечную точку.
В следующей таблице показан синтаксис:
| Выражение | Рассчитывается по |
|---|---|
[1.3,3.4.1] |
1.3.0 <= x <= 3.4.1 |
(1.3.0,3.4) |
1.3.0 < x < 3.4.0 |
[1.1,3.4) |
1.1.0 <= x < 3.4.0 |
(0.2.4,5.6.2-preview.2] |
0.2.4 < x <= 5.6.2.-preview.2 |
[2.4.5] |
x = 2.4.5 |
2.1.0-preview.7 |
x >= 2.1.0-preview.7 |
Примечание: В выражении не разрешается использовать пробелы. Не поддерживаются символы подстановки.
Unity схема версионирования
Текущие версии Unity (и все версии, поддерживающие определения сборки) используют обозначитель версии из трех частей: MAJOR.MINOR.REVISION, например, 6000.0.33f1.
- Версия
MAJORсостоит из четырех цифр, представляющих год выпуска Unity2022.x.zи более ранних версий, или основную техническую версию с Unity 6 (6000.x.z) и далее. - Версия
MINOR— это целевой квартал выпуска, например1,2,3или4. -
REVISIONобозначитель состоит из трех собственных частей, формат которых:RRzNNгде:RR— одно- или двухзначный номер ревизии-
zбуква, обозначающая тип выпуска:a= альфа-релизb= бета-релиз-
f= a normal public release c= версия выпуска для Китая (эквивалент f)p= выпуск патчаx= экспериментальное освобождение
NN— это одно- или двухзначное число
Определители типа выбросов сравниваются следующим образом:
a < b < f = c < p < x
Альфа-релиз считается более ранним, чем бета-релиз, который является более ранним, чем обычный (f) или китайский (c) релиз. Релиз патча всегда является более поздним, чем обычный или китайский релиз с тем же номером ревизии, а экспериментальный релиз является более поздним, чем любой другой тип релиза. Обратите внимание, что экспериментальные выпуски не используют в конце приростное число.
Следующее примерное выражение включает любую версию 6000.0 или 6000.1 Unity, но не любую версию 6000.2 или более позднюю:
[6000.0,6000.2)
Номера версий пакетов и модулей
Определители версий пакетов и модулей состоят из четырех частей, следующих за Семантический контроль версий формат: MAJOR.MINOR.PATCH-LABEL. Первые три части всегда являются числами, но метка является строкой. Unity пакеты в preview используют строку, preview или preview.nгде n > 0.
Следующее примерное выражение включает все версии пакета с версиями MAJOR.MINOR между 3.2 и 6.1 (включая):
[3.2,6.1]