Unity 6.3
0 онлайн 57 гостей 3 в системе
Вход
Программирование в Unity Шаг 68 из 210

Настраиваемые символы скриптов

В дополнение к встроенным символам сценариевв Unity, вы можете определить свои собственные пользовательские символы скриптов. Где вы определяете пользовательские символы скриптов определяет область, в которой они применяются. Вы можете определить пользовательские символы в следующих местах:

  • Ан файл актива, для символов, которые применяются ко всем редакторам и проигрывателям в проекте, независимо от активного построить профиль.
  • Настройки игрока, для символов, которые применяются ко всему редактору и коду игрока, когда данная платформа или один из ее профилей сборки активны.
  • Профиль сборки Профиль сборкидля символов, которые применяются ко всему коду Редактора и Проигрывателя, когда активен данный профиль сборки.
  • Из кода, для символов, которые применяются для активной платформы или для отдельных сборок Игрока, в зависимости от используемого API.

Настраиваемые символы для всего проекта

Вы можете определить пользовательские символы скриптов, которые применяются ко всему проекту с помощью файл ответа ассеты следующим образом:

  1. Назовите файл csc.rsp и поместите его в корневую папку проекта Ассеты.
  2. Определите символы скриптов в строках, начинающихся с -define:, за которыми следует один или несколько символов скриптов, разделенных точкой с запятой.

Unity читает этот файл при запуске и применяет его перед компиляцией кода. Например, если вы включите одну строку -define:UNITY_DEBUG;UNITY_TEST в файл csc.rsp, символы UNITY_DEBUG и UNITY_TEST будут включены в качестве глобальных определенных символов скриптов для всех скриптов C# в проекте.

Примечание: Изменения в файлах .rsp не вступают в силу, пока Unity не перекомпилирует скрипты. Вы можете вызвать перекомпиляцию, обновив или реимпортировав один файл скрипта.

Пользовательские символы для платформы

Настраиваемые символы скриптов, специфичные для платформы, можно определить следующим образом:

  1. Откройте Настройки плеера.
  2. Перейдите в список Скрипты Определение символов в разделе Другие настройки > Компиляция сценариев.
  3. Добавьте новые символы скриптов в список, выбрав кнопки + и введя имя символа в текстовое поле. Удалите существующие элементы списка с помощью кнопки -.
  4. Когда вы закончите редактирование списка, выберите Применить, чтобы применить изменения. Unity перекомпилирует скрипты в вашем проекте с использованием новых символов.

Примечание: кнопка Copy Defines копирует текущий набор пользовательских символов компиляции скриптов из списка в буфер обмена в виде строки значений, разделённых точками с запятой.

Настраиваемые символы для профиля сборки

Настраиваемые символы скриптов для профиля построения можно определить следующим образом:

  1. Выберите профиль сборки, для которого вы хотите определить символы, в окне Профили сборки.
  2. Выберите Добавить настройки > Сценарий определяет. Список определений скрипта появится в развернутом меню Сценарий определяет.
  3. Добавьте новые символы в список, нажав кнопки + и введя имя символа в текстовое поле. Удалите существующие элементы списка, нажав кнопки -. Изменения в списке сохраняются и применяются автоматически.

Примечание: Вы можете запустить редактор с помощью -activeBuildProfile аргумент командной строки сделать указанный профиль сборки и его пользовательские символы скриптов применимыми с момента запуска.

Пользовательские символы, определенные из кода

Для определения символов скриптов можно использовать следующие APIs:

BuildPlayerOptions.extraScriptingDefines и Build.Player.ScriptCompilationSettings-extraScriptDefines применимы только к сборкам Player, поэтому при определении символов скриптов, применимых к скриптам Editor, используйте PlayerSettings.SetScriptingDefineSymbols. Это кодовый эквивалент настройки символов скриптов для конкретной платформы в параметрах Player.

Важно: Символы, созданные из кода с SetScriptingDefineSymbols, не вступают в силу, пока Редактор не вернет контроль и не перекомпилирует ваши скрипты. Например, если вы создаете скриптовые символы с SetScriptingDefineSymbols в скрипты Редактора, а затем вызываете BuildPipeline.BuildPlayer на следующей строке, новые символы, созданные в предыдущей строке, еще не вступят в силу. В этом случае любой код Редактора, который запускается как часть исполнения BuildPlayer, запускается без новых символов, и Проигрыватель может не компилироваться так, как предполагалось.

Пользовательские символы в пакетном режиме

Когда Редактор запускается в пакетном режиме, нет механизма для запуска перекомпиляции скриптов. Если вам нужны определенные символы для определения в Редакторе, работающем в пакетном режиме, они должны быть на месте со запуска с помощью csc.rsp asset file.

Наследование символа скрипта

Если вы определили пользовательские символы скриптов в нескольких местах, Unity суммирует все символы, применимые к текущей конфигурации сборки. Символы наследуются из каждой области, а не перезаписываются, следующим образом: Project общие символы (из csc.rsp) + символы для конкретной платформы (из параметров проигрывателя) + символы профиля сборки (из данных сборки). Символы платформы и профиля сборки включаются только в том случае, если они соответствуют активному профилю сборки.

Например, предположим, что в вашем проекте есть следующие пользовательские символы скриптов, определенные в следующих расположениях:

Местоположение Символы, определенные
csc.rsp SYMBOL_A
Windows Настройки Игрока SYMBOL_B
WindowsBuildProfile1 SYMBOL_C
WindowsBuildProfile2 SYMBOL_D

В этой примерной конфигурации в следующей таблице показано, какие символы активны для кода редактора и проигрывателя, когда активны различные профили сборки:

Активный профиль сборки Активные символы
Android SYMBOL_A
Windows SYMBOL_A, SYMBOL_B
WindowsBuildProfile1 SYMBOL_A, SYMBOL_B, SYMBOL_C
WindowsBuildProfile2 SYMBOL_A, SYMBOL_B, SYMBOL_D

Вы можете проверить это поведение с помощью директив #if в вашем коде. Дополнительные сведения см. в Тестирование условной компиляции.

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