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

Введение в IL2CPP

IL2CPP (Intermediate Language To C++) — собственный скриптовый бэкенд Unity с опережающей (AOT) компиляцией. Изначально он был разработан для платформ, которые не поддерживают Mono и JIT-компиляцию, например iOS. IL2CPP преобразует IL (Intermediate Language) в C++ и компилирует его в нативный код для конкретной платформы. Затем код упаковывается с приложением в стандартном для целевой платформы формате, например APK/AAB, пакет iOS-приложения или исполняемый файл Windows и DLL-файлы.

IL2CPP поддерживается на всех платформах и может предложить несколько преимуществ по сравнению со скриптами Mono, включая улучшенную производительность и сокращение времени запуска. Однако необходимость включения машинного кода в созданные приложения, как правило, увеличивает как время создания, так и размер окончательно созданного приложения.

IL2CPP поддерживает отладку управляемого кода так же, как и Mono. Дополнительные сведения см. в разделе Отладка кода C# в Unity.

Создание проекта с IL2CPP

Для создания проекта с IL2CPP, Il2CPP должен быть установлен как часть установки Unity. Вы можете выбрать IL2CPP в качестве дополнительного модуля при первой установке версии Unity, или добавить поддержку IL2CPP к существующей установке через Unity Hub. Дополнительные сведения см. в Установка Unity Hub и Добавление модулей в Unity Editor.

IL2CPP также требует некоторых систем, нативных для целевой платформы, чтобы генерировать код C++. Это означает, что кросс-компиляция, как правило, не поддерживается, и для создания IL2CPP Player для конкретной целевой платформы вы должны собирать из Редактора, работающего на той же платформе. Например, для создания macOS Player с IL2CPP, вы должны собирать на macOS. Исключением является Linux, где создание Linux Players на других рабочих платформах поддерживается. Для получения дополнительной информации, см. Linux IL2CPP кросс-компилятор.

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

  • Через меню Настройки Игрока в Редакторе. Выполните следующие действия, чтобы изменить скриптовый сервер через меню Настройки Игрока:

    1. Перейдите в Изменить > Project Настройки.
    2. Нажмите на кнопку Настройки Игрока, чтобы открыть Игрок settings для текущей платформы в Inspector.
    3. Перейдите в раздел Конфигурация в подменю Другие настройки.
    4. Нажмите на раскрывающееся меню Scripting Backend, затем выберите IL2CPP.

    Вы также можете открыть меню Настройки Игрока из окна Создание профилей; перейдите в Файл > Создание профилей и нажмите на вкладку Настройки Игрока.

  • С помощью редактора скриптов API. Используйте свойства PlayerSettings.SetScriptingBackend для изменения бэк-энда скриптов, используемого Unity.

Раздел Конфигурация настроек Player
Раздел Конфигурация настроек Проигрывателя

Дополнительные сведения о системных требованиях для платформ настольных компьютеров, включая требования IL2CPP для отдельных платформ, см. в разделе «Настольные компьютеры» документа Системные требования для Unity.

Как работает IL2CPP

При сборке с помощью IL2CPP, Unity автоматически выполняет следующие действия:

  1. Компилятор Roslyn C# компилирует код C# вашего приложения и любой требуемый код пакета в .NET DLLs (управляемые сборки).
  2. Unity применяет управляемое удаление кода. Этот шаг может значительно уменьшить размер построенного приложения.
  3. Базовый модуль IL2CPP преобразует все управляемые сборки в стандартный код C++.
  4. Компилятор C++ компилирует сгенерированный код C++ и часть времени выполнения IL2CPP с помощью компилятора для конкретной платформы.
  5. Unity создает либо исполняемый файл, либо DLL, в зависимости от платформы, на которую вы направляетесь.

Оптимизация времени сборки IL2CPP

Время сборки Project с IL2CPP может быть значительно длиннее, чем с Mono. Тем не менее, вы можете сделать несколько вещей, чтобы сократить время сборки:

  • Исключите проект Unity и целевые папки сборки из сканирования антивирусной программой перед сборкой проекта.
  • Храните свой проект и целевую папку сборки на самом быстром дисковом устройстве, которое у вас есть. Преобразование кода IL в C++ и его компиляция требуют большого количества операций чтения/записи, поэтому более быстрое устройство хранения ускоряет этот процесс.
  • Изменить IL2CPP Опция Генерирование кода в Настройках проигрывателя. Чтобы изменить, как IL2CPP генерирует код, откройте Настройки Игрока и настроить IL2CPP По умолчанию, Оптимизация для скорости выполнения опция включена, которая производит больше машинного кода, который уменьшает влияние IL2CPP во время выполнения. Чтобы сократить время сборки, вы можете установить этот параметр на Оптимизация для размера кода и времени сборки. Этот метод производит и включает меньше машинного кода в исполняемый бинарный файл и поэтому может уменьшить производительность во время выполнения, но также значительно сокращает время сборки и размер бинарного файла.

Оптимизация производительности во время выполнения с Burst

В соответствующих проектах вы можете улучшить производительность проекта во время выполнения, используя компилятор Burst вместе с IL2CPP для компиляции совместимых разделов вашего кода в высокооптимизированный машинный код. Дополнительную информацию см. в Burst компиляция.

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