Unity ссылка на символ скрипта
Символы платформ
Unity автоматически определяет некоторые символы в зависимости от платформы создания и сборки. Они следующие:
| Определение | Функция |
|---|---|
UNITY_EDITOR |
Символ скрипта для вызова Unity Editor скриптов из вашего игрового кода. |
UNITY_EDITOR_WIN |
Символ скрипта для кода редактора на Windows. |
UNITY_EDITOR_OSX |
Символ скрипта для кода редактора в macOS. |
UNITY_EDITOR_LINUX |
Символ скрипта для кода редактора на Linux. |
UNITY_EMBEDDED_LINUX |
Символ скрипта для встроенного Linux. |
UNITY_QNX |
Символ скрипта для QNX. |
UNITY_STANDALONE_OSX |
Символ скрипта для компиляции или выполнения кода специально для macOS (включая архитектуры Universal, PPC и Intel). |
UNITY_STANDALONE_WIN |
Символ скрипта для компиляции/выполнения кода специально для автономных приложений Windows. |
UNITY_STANDALONE_LINUX |
Символ скрипта для компиляции/выполнения кода специально для автономных приложений Linux. |
UNITY_STANDALONE |
Символ скрипта для компиляции/выполнения кода для любой автономной платформы (Mac OS X, Windows или Linux). |
UNITY_SERVER |
Символ скрипта для компиляции/исполнения кода для выделенный сервер (macOS, Windows или Linux). |
UNITY_IOS |
Символ скрипта для компиляции/выполнения кода для платформы iOS. |
UNITY_ANDROID |
Символ скрипта для платформы Android. |
UNITY_TVOS |
Символ скрипта для платформы Apple TV. |
UNITY_VISIONOS |
Символ скрипта для платформы VisionOS. |
UNITY_WSA |
Символ скрипта для Universal Windows Platform. |
UNITY_WSA_10_0 |
Символ скрипта для Universal Windows Platform. |
UNITY_WEBGL |
Символ скрипта для веб-сайта. |
UNITY_FACEBOOK_INSTANT_GAMES |
Символ скрипта для платформы Facebook Instant Games. |
UNITY_ANALYTICS |
Символ скриптирования для вызова методов Unity Analytics из кода игры. |
UNITY_ASSERTIONS |
Символ скрипта для процесса управления утверждениями. |
UNITY_64 |
Символ скрипта для 64-битных платформ. На практике этот не должен использоваться, так как он не работает на всех 64-битных архитектурах и различные CPU архитектуры на данной платформе могут иметь одни и те же скомпилированные сборки. Для условного выполнения кода на основе архитектуры используйте стандартное if, которое проверяет IntPtr.Size, что является 4 в 32-битном процессе и 8 в 64-битном процессе. Для примера см. Альтернативы директивам. |
Символы версий Unity Editor
Unity автоматически определяет некоторые символы скриптов на основе версии Unity Editor, которую вы используете в данный момент.
При номере версии X.Y.Z (например, 6000.0.33) Unity выводит три глобальных символа скрипта в следующих форматах: UNITY_X, UNITY_X_Y и UNITY_X_Y_Z.
Ниже приведен пример символов скрипта, представленных в Unity 6000.0.33:
| Определение | Функция |
|---|---|
UNITY_6000 |
Символ скрипта для версии выпуска Unity 6, открытый в каждом выпуске 6000.Y.Z. |
UNITY_6000_0 |
Символ скрипта для основной версии Unity 6.0, раскрытой в каждом выпуске 6000.0.Z. |
UNITY_6000_0_33 |
Символ скрипта для второстепенной версии Unity 6000.0.33. |
Вы также можете компилировать код выборочно, основываясь на самой ранней версии Unity, необходимой для компиляции или выполнения части фрагмента кода. Следуя тому же формату версии, описанному ранее (X.Y), Unity выставляет один глобальный #define в формате UNITY_X_Y_OR_NEWER (например, UNITY_6000_0_OR_NEWER), который вы можете использовать для этой цели.
Другие символы
Другие символы, определяемые Unity:
| Определение | Функция |
|---|---|
CSHARP_7_3_OR_NEWER |
Определяется при создании скриптов с поддержкой C# 7.3 или более поздних. |
ENABLE_MONO |
Скриптирование #define для Mono. |
ENABLE_IL2CPP |
Скриптирование #define для IL2CPP. |
ENABLE_VR |
Определяется, когда целевая платформа сборки поддерживает VR. Не подразумевает, что VR в настоящее время включен или что установлены необходимые плагины и пакеты, необходимые для поддержки VR. |
NET_2_0 |
Определяется при построении скриптов с уровнем совместимости .NET 2.0 API на Mono и IL2CPP. |
NET_2_0_SUBSET |
Определяется при построении скриптов против .NET 2.0 Подмножества API уровня совместимости на Mono и IL2CPP. |
NET_LEGACY |
Определяется при построении скриптов против .NET 2.0 или .NET 2.0 Подмножества API уровня совместимости на Mono и IL2CPP. |
NET_4_6 |
Определяется при построении скриптов с уровнем совместимости .NET 4.x API на Mono и IL2CPP. |
NET_STANDARD_2_0 |
Определяется при построении скриптов против .NET Стандартный уровень совместимости 2.0 API на Mono и IL2CPP. |
NET_STANDARD_2_1 |
Определяется при построении скриптов против .NET Стандартный уровень совместимости 2.1 API на Mono и IL2CPP. |
NET_STANDARD |
Определяется при построении скриптов против .NET Стандартный уровень совместимости 2.1 API на Mono и IL2CPP. |
NETSTANDARD2_1 |
Определяется при построении скриптов против .NET Стандартный уровень совместимости 2.1 API на Mono и IL2CPP. |
NETSTANDARD |
Определяется при построении скриптов против .NET Стандартный уровень совместимости 2.1 API на Mono и IL2CPP. |
ENABLE_WINMD_SUPPORT |
Определяется, когда поддержка Windows Runtime включена на IL2CPP. Дополнительные сведения см. в WinRT API в скриптах C# для UWP. |
ENABLE_INPUT_SYSTEM |
Определяется при включении пакета Input System в Настройках Проигрывателя. |
ENABLE_LEGACY_INPUT_MANAGER |
Определяется при включении устаревшего менеджера ввода в настройках проигрывателя. |
DEVELOPMENT_BUILD |
Определяется, когда ваш скрипт запускается в проигрывателе, который был построен с помощью Разработка Build опция включена. Это определение отражает только то, была ли включена опция сборки для разработки во время сборки. Чтобы узнать, выполняется ли ваш скрипт в режиме сборки для разработки, используйте Debug.isDebugBuild. DEVELOPMENT_BUILD не достаточно для определения того, работаете ли вы в настоящее время в сборке для разработки, поскольку большинство платформ позволяют переключаться между сборкой для разработки и сборкой, не предназначенной для разработки, без перекомпиляции проекта. Unity не поддерживает переключение между разработкой и неразработкой сборок в редакторе и требует переключения после завершения сборки. Например, на Windows, вы можете выбрать Создание решения Visual Studio возможность выбрать, хотите ли вы разработку или не-разработку сборки в Visual Studio. Переключение в Visual Studio не перекомпилирует ваши скрипты и поэтому, он не будет переоценить определения скрипта. Вы также можете переключиться от окончательной сборки игры к разработке сборки путем переключения UnityPlayer.dll в сборке игры с одним из сборки разработки для отладки живых игровых сборок. |
UNITY_CLOUD_BUILD |
Определяется при сборке проекта с Unity Автоматизация сборки. |
Примечание: Символ DEBUG предопределён в C#, а в Unity использование директивы #if DEBUG эквивалентно #if UNITY_EDITOR || DEVELOPMENT_BUILD