Создание плеера из командной строки
Вы можете построить Unity Player из командной строки, не открывая Unity Editor. Это полезно для автоматизированных сборок в системах непрерывной интеграции (CI) и конвейеров сборки.
Существует несколько подходов к созданию проигрывателя из командной строки:
| Тип конструкции | Детали командной строки |
|---|---|
| Создание с целью создания | Используйте аргументы -buildTarget для указания целевой платформы и аргумент -build для запуска сборки проигрывателя. |
| Создание с профилем создания | Используйте -activeBuildProfile аргумент для указания сохраненного профиля сборки, а также -build аргумент для запуска сборки. Вам нужно построить файл ассета профиля в вашем проекте, чтобы использовать этот подход. |
| Создание с помощью пользовательского скрипта и цель сборки | Используйте -executeMethod аргумент для выполнения пользовательский скрипт сборки, вместе с -buildTarget чтобы указать целевую платформу. |
| Создание с помощью пользовательского скрипта и профиля сборки | Используйте -executeMethod аргумент для выполнения пользовательский скрипт сборки, вместе с -activeBuildProfile для указания сохраненного профиля сборки. |
Если вы хотите построить проигрыватель без пользовательского скрипта сборки, используйте аргумент -build с -buildTarget или -activeBuildProfile. Этот подход аналогичен выбору Строительство в окне Окно Build Profiles.
Если у вас есть пользовательский скрипт сборки, используйте -executeMethod аргумент, чтобы указать выполняемый статический метод, а также либо -buildTarget или -activeBuildProfile.
Требуемые аргументы
Для сборки из командной строки требуются следующие аргументы:
-projectPath <pathname>: Указывает путь к вашему проекту Unity.-quit: Выходит из Unity Editor после завершения выполнения.
Рекомендуемые аргументы
Следующие аргументы необязательны, но рекомендуются для сборки из командной строки:
-
-batchmode: запускает Unity в пакетном режиме без графического интерфейса. -logFile <pathname>: Сохраняет журнал редактора в определенный файл для упрощения отладки и мониторинга.-buildTargetили-activeBuildProfile: Обеспечивает, что Unity запускается с правильной конфигурацией целевой платформы. Если вы не указываете это, то Unity загружается с последней использованной конфигурацией.
Полный список аргументов командной строки см. в Unity Editor аргументы командной строки.
Ограничения переключения целей в пакетном режиме
Важно: Для надежных сборок командной строки всегда указывайте профиль сборки или цель сборки непосредственно в командной строке при запуске любого пользовательского скрипта, который вызывает сборку. Это требование также означает, что вы не можете собирать для нескольких целей в одном вызове командной строки. Вместо этого запускайте процесс Unity отдельно для каждой целевой платформы.
Некоторые APIs, которые могут изменить или указать целевую платформу, не работают, как ожидалось, в пакетном режиме, потому что при изменении целевой платформы Unity перекомпилирует и перезагружает сборки Редактора. Эта перезагрузка не может произойти во время выполнения скрипта, так что изменение не вступает в силу.
Следующие APIs не работают, как ожидалось:
BuildProfile.SetActiveBuildProfileEditorUserBuildSettings.SwitchActiveBuildTargetAsyncBuildAssetBundlesParameters.targetPlatformBuildPlayerOptions.target
Кроме того, условная сборка для конкретной платформы варьируется в зависимости от текущей цели. Сборки, загружаемые Unity, также могут отличаться в зависимости от целевой платформы. Эти различия могут повлиять на выходные данные сборки и привести к трудно диагностируемым проблемам.
Пример: Создание с помощью пользовательского скрипта на Windows
Следующая команда выполняет пользовательский скрипт сборки на Windows:
"C:\Program Files\Unity\Hub\Editor\6000.3.XXf1\Editor\Unity.exe" -executeMethod BuildScripts.BuildWindows64 -buildTarget StandaloneWindows64 -batchmode -quit -projectPath "C:\path\to\Project" -logFile C:\Logs\build.log
Пример: Создание с помощью пользовательского скрипта на macOS
Следующая команда выполняет пользовательский скрипт сборки на macOS:
/Applications/Unity/Hub/Editor/6000.3.XXf1/Unity.app/Contents/MacOS/Unity -executeMethod BuildScripts.BuildMacOS -buildTarget StandaloneOSX -batchmode -quit -projectPath "/path/to/Project" -logFile ~/Logs/build.log
Примечание: Отрегулировать Unity Editor путь в примерах, чтобы соответствовать версии Unity вы хотите использовать, или заменить путь полностью, если ваш Unity Editor установлен в другом месте.