Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

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

Директивы C# позволяют выборочно включать или исключать код из компиляции в зависимости от того, являются ли определенные символы сценариев определено или не определено.

Помимо встроенных символов сценариев (относящихся к платформе, версия редактора и другие различные сценарии системной среды), вы можете указать свои собственные символы сценариев либо с помощью редактора Пользовательский интерфейс(пользовательский интерфейс) Позволяет пользователю взаимодействовать с вашим приложением. Подробнее
См. в Словаре
, с помощью скрипта или файла ресурса.

Установка символов скрипта через редактор

Чтобы установить или удалить директивы определения с помощью редактора, выберите Редактировать > Настройки проекта > Проигрыватель. Затем на панели Другие настройки прокрутите вниз до пункта Компиляция скриптов.

Настройки сценариев определения символов в окне «Настройки проекта». В этом примере показаны два пользовательских символа, определенных в списке.
Настройки сценариев определения символов в окне «Настройки проекта». В этом примере показаны два пользовательских символа, определенных в списке.

Вы можете добавлять и удалять свои собственные символы сценариев в список Символы определения сценариев, используя кнопки + и - и вводя имя ваших новых символов в поля. Когда вы нажимаете Применить, применяются ваши новые символы сценариев, и Unity перекомпилирует скриптыЧасть код, который позволяет вам создавать свои собственные Компоненты, запускать игровые события, изменять свойства Компонентов с течением времени и реагировать на ввод данных пользователем любым удобным для вас способом. Подробнее
Просмотрите Словарь
в своем проекте, используя эти новые символы.

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

Определение символов скрипта через скрипт

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

Установка символов скрипта для компиляции скрипта редактора

Если вам нужно определить символы сценариев с помощью сценариев в редакторе, чтобы изменения повлияли на ваши сценарии редактора, вы должны использовать PlayerSettings.SetScriptingDefineSymbolsForGroup. Однако следует отметить некоторые важные детали, касающиеся того, как это работает.

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

Так, например, если вы используете этот метод в скрипте редактора, то немедленно вызовите BuildPipeline.BuildPlayer в следующей строке того же скрипта, в этот момент Unity по-прежнему запускать сценарии редактора со старым набором символов сценариев, потому что они еще не были перекомпилированы с новыми символами. Это означает, что если у вас есть сценарии редактора, которые запускаются как часть исполнения BuildPlayer, они запускаются со старыми символами сценариев, и ваш проигрыватель может не строиться так, как вы ожидали.

Настройка символов сценариев в пакетном режиме

Упомянутый выше асинхронный характер компиляции Unity также важно понимать, если вы пишете сценарии редактора, которые будут выполняться в пакетном режиме в редакторе Unity на сервере непрерывной интеграции (CI). Это связано с тем, что когда редактор работает в пакетном режиме, он работает «без головы", поэтому нет цикл редактора, который заставит его перекомпилировать с новыми символами скрипта. По этой причине не следует использовать сценарии редактора для установки символов сценариев на сервере CI в пакетном режиме, поскольку сценарии не будут перекомпилированы и не будут применяться.

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

Установка символов скрипта через файл ресурсов

Вы можете установить пользовательские символы сценариев с помощью текстового ресурса в своем проекте. Для этого вы должны добавить текстовый файл с именем csc.rsp, определяющий пользовательские символы сценариев, в корень папки Assets вашего проекта. Этот специальный файл считывается Unity при запуске и применяется перед компиляцией любого кода.

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

Каждый раз, когда вы вносите изменения в файлы .rsp, вам необходимо перекомпилировать их, чтобы они вступили в силу. Это можно сделать, обновив или повторно импортировав один файл сценария.

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

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3