Version: 5.5
Сборка системы приложения
За кулисами

Аргументы командной строки

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

On macOS, type the following into the Terminal to launch Unity:

/Applications/Unity/Unity.app/Contents/MacOS/Unity

On 64-bit Windows, type the following into the Command Prompt to launch Unity:

C:\Program Files\Unity\Editor\Unity.exe

On 32-bit Windows, type the following into the Command Prompt to launch Unity:

C:\Program Files (x86)\Unity\Editor\Unity.exe

Use the same method to launch standalone Unity games.

Launching Unity silently

On macOS, type the following into the Terminal to silently launch Unity:

/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -serial    SB-XXXX-XXXX-XXXX-XXXX-XXXX -username 'JoeBloggs@example.com' -password 'MyPassw0rd'

On 64-bit Windows, type the following into the Command Prompt to silently launch Unity:

     "C:\Program Files\Unity\Editor\Unity.exe" -quit -batchmode -serial    SB-XXXX-XXXX-XXXX-XXXX-XXXX -username "JoeBloggs@example.com" -password "MyPassw0rd"

On 32-bit Windows, type the following into the Command Prompt to silently launch Unity:

 "C:\Program Files (x86)\Unity\Editor\Unity.exe" -quit -batchmode -serial    SB-XXXX-XXXX-XXXX-XXXX-XXXX -username "JoeBloggs@example.com" -password "MyPassw0rd"

Опции

Как упоминалось выше, редактор и собранные игры могут опционально быть запущены с дополнительными командами и указаниями. Это делается используя следующие опции командной строки:-

Command Details
-assetServerUpdate <IP[:port] projectName username password [r <revision>]> Вызывает обновление проекта в Сервере ассетов, в заданном IP:port. Порт может быть необязательным, и если он не дан, то это предполагает то, что он стандартный (10733). Рекомендуется использовать эту команду в связке в аргументом -projectPath, чтобы убедиться, что вы работаете с нужным проектом. Если имя проекта не задать, то будет открыт последний проект, использовавший Unity. Если по заданному пути -projectPath проекта не существует, то автоматически будет создан новый.
-batchmode Запускает Unity в режиме batch. Это всегда следует использовать в связке с другими аргументами командной строки, так как он обеспечивает то, что при старте не появятся никакие выскакивающие окна и это убирает необходимость вмешательства человека. Когда происходит исключение во время исполнения кода скрипта, сервер ассетов сообщает о падении или другие операции падают, Unity незамедлительно закроется с return кодом 1. Обратите внимание, что в режиме batch Unity будет отсылать в консоль минимально возможную версию лога. Однако файлы лога будут всё также содержать полные логи. Учтите, что открытие проекта в режиме batch, когда в редакторе открыт этот же проект, не поддерживается. Одновременно может быть запущена только одна копия Unity.
-buildLinux32Player <pathname> Собрать 32-битное приложение для Linux (например, -buildLinux32Player path/to/your/build).
-buildLinux64Player <pathname> Собрать 64-битное приложение для Linux (например, -buildLinux64Player path/to/your/build).
-buildLinuxUniversalPlayer <pathname> Собрать совмещённое 32-битное и 64-битное приложение для Linux (например, -buildLinuxUniversalPlayer path/to/your/build).
-buildOSXPlayer <pathname> Собрать 32-битное приложение для Mac OSX (например, -buildOSXPlayer path/to/your/build.app).
-buildOSX64Player <pathname> Собрать 64-битное приложение для Mac OSX (например, -buildOSX64Player path/to/your/build.app).
-buildOSXUniversalPlayer <pathname> Собрать совмещённое 32-битное и 64-битное приложение для Mac OSX (например, -buildOSXUniversalPlayer path/to/your/build.app).
-buildTarget <name> Allows the selection of an active build target before a project is loaded. Possible options are: win32, win64, osx, linux, linux64, ios, android, web, webstreamed, webgl, xboxone, ps4, psp2, wsaplayer, tizen, samsungtv.
-buildWindowsPlayer <pathname> Собрать 32-битное приложение Windows (например, -buildWindowsPlayer path/to/your/build.exe).
-buildWindows64Player <pathname> Собрать 64-битное приложение Windows (например, -buildWindows64Player path/to/your/build.exe).
-cleanedLogFile Detailed debugging feature. StackTraceLogging allows features to be controlled to allow detailed logging. All settings allow None, Script Only and Full to be selected.
-createProject <pathname> Создать пустой проект по заданному пути.
-editorTestsCategories Filter editor tests by categories. Separate test categories with a comma.
-editorTestsFilter Filter editor tests by names. Separate test names with a comma.
-editorTestsResultFile Path where the result file should be placed. If the path is a folder, a default file name is used. If not specified, the results are placed in the project’s root folder.
-executeMethod <ClassName.MethodName> Исполняет статичный метод сразу, как только Unity запустится, проект откроется и, опционально, произойдёт обновление сервера ассетов. Это можно использовать для постоянной интеграции, проведения Unit тестов, сборки, подготовки данных и т.д. Если вы хотите, чтобы была возвращена ошибка из командной строки процесса, вы можете либо запустить исключение, которое вынудит Unity закрыться с результатом 1, либо вызвать EditorApplication.Exit с ненулевым кодом. Если вы хотите передать параметры, то вы можете добавить их в командную строку и получить их внутри метода используя System.Environment.GetCommandLineArgs.
-exportPackage <exportAssetPath1 exportAssetPath2 ExportAssetPath3 exportFileName> Экспортирует пакет по заданному пути (или набору путей). exportAssetPath это папка (относительно корневой папки Unity проекта), куда будет проводиться экспорт из Unity проекта и exportFileName это имя пакета. На данный момент, эта опция позволяет экспортировать только все папки за раз. Это команда обычно используется вместе с аргументом -projectPath.
-force-d3d9 (Windows only) Принуждает редактор использовать Direct3D 9. Это и так делается по умолчанию, поэтому обычно нет причин использовать эту команду.
-force-d3d11 (Windows only) Принуждает редактор использовать Direct3D 9. Это и так делается по умолчанию, поэтому обычно нет причин использовать эту команду.
-force-glcore (Windows only) Make the Editor use OpenGL 3/4 core profile for rendering. The Editor tries to use the best OpenGL version available and all OpenGL extensions exposed by the OpenGL drivers. If the platform isn’t supported, Direct3D is used.
-force-glcoreXY (Windows only) Similar to -force-glcore, but requests a specific OpenGL context version. Accepted values for XY: 32, 33, 40, 41, 42, 43, 44 or 45.
-force-gles (Windows only) Make the Editor use OpenGL for Embedded Systems for rendering. The Editor tries to use the best OpenGL ES version available, and all OpenGL ES extensions exposed by the OpenGL drivers.
-force-glesXY (Windows only) Similar to -force-gles, but requests a specific OpenGL ES context version. Accepted values for XY: 30, 31 or 32.
-force-clamped (Windows only) Used with -force-glcoreXY to prevent checking for additional OpenGL extensions, allowing it to run between platforms with the same code paths.
-force-free Make the Editor run as if there is a free Unity license on the machine, even if a Unity Pro license is installed.
-importPackage <pathname> Импортирует выбранный пакет. Окно импорта показываться не будет.
-logFile <pathname> Задаёт, куда редактор, или приложение будет записывать логи.
-nographics При работе в режиме batсh, вообще не инициализирует графическое устройство. Это позволяет запустить автоматизированные рабочие процессы на устройствах, у которых даже нет графического процессора (автоматизированные рабочие процессы работает только тогда, когда окно редактора выделено, иначе вы не сможете отправлять симулируемые команды ввода).
-password <password> The password of the user, required when launching.
-projectPath <pathname> Открыть проект по заданному пути.
-quit Закрывает редактор Unity после того, как другие команды были исполнены. Учтите, что из-за этого сообщения об ошибках могут быть скрыты (однако они появятся в файле Editor.log).
-returnlicense Return the currently active license to the license server. Please allow a few seconds before the license file is removed, because Unity needs to communicate with the license server.
-runEditorTests Run Editor tests from the project. This argument requires the projectPath, and it’s good practice to run it with batchmode argument. quit is not required, because the Editor automatically closes down after the run is finished.
-serial <serial> Activate Unity with the specified serial key. It is good practice to pass the -batchmode and -quit arguments as well, in order to quit Unity when done, if using this for automated activation of Unity. Please allow a few seconds before the license file is created, because Unity needs to communicate with the license server. Make sure that license file folder exists, and has appropriate permissions before running Unity with this argument. If activation fails, see the Editor.log for info.
-silent-crashes Don’t display a crash dialog.
-username <username> Enter a username into the log-in form during activation of the Unity Editor.

Пример использования

C#:

using UnityEditor;
class MyEditorScript
{
     static void PerformBuild ()
     {
         string[] scenes = { "Assets/MyScene.unity" };
         BuildPipeline.BuildPlayer(scenes, ...);
     }
}

JavaScript:

static void PerformBuild ()
{
    string[] scenes = { "Assets/MyScene.unity" };
    BuildPipeline.BuildPlayer(scenes, ...);
}

Следующая команда запускает Unity в режиме batch, исполняет метод MyEditorScript.MyMethod, а затем закрывается, после выполнения.

Windows:

C:\program files\Unity\Editor\Unity.exe -quit -batchmode -executeMethod MyEditorScript.MyMethod

Mac OS:

/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -executeMethod MyEditorScript.MyMethod

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

/Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -projectPath ~/UnityProjects/AutobuildProject -assetServerUpdate 192.168.1.1 MyGame AutobuildUser l33tpa33 -executeMethod MyEditorScript.PerformBuild -quit

Аргументы командной строки для самостоятельного приложения Unity

These should only be used under special circumstances, or when directed by Unity Support.

Command Details
-enableIncompatibleAssetDowngrade Use this when you have Assets made by a newer, incompatible version of Unity, that you want to downgrade to work with your current version of Unity. When enabled, Unity presents you with a dialog asking for confirmation of this downgrade if you attempt to open a project that would require it.
Note: This procedure is unsupported and highly risky, and should only be used as a last resort.

Аргументы командной строки для самостоятельного приложения Unity

Приложения собранные в Unity так же воспринимают некоторые аргументы командной строки:

Command Details
-adapter N (Windows only) Позволяет игре работать в режиме full-screen на другом дисплее. Переменная N указывает на графический адаптер Direct3D. В большинстве случаев, есть связь типа “один-на-один” между адаптерами и видеокартами. На картах с мультиголовной поддержкой (они могут управлять несколькими мониторами одной картой) каждая “голова” может быть собственным адаптером.
-batchmode Запускает игру в “безголовом” режиме. Игра не будет ничего отображать или реагировать на действия пользователя. Это, по большей части, полезно для запуска серверов сетевых игр.
-force-d3d9 (Windows only) Принуждает игру использовать Direct3D 9. Это так и делается по умолчанию, поэтому обычно нет причин использовать эту команду.
-force-d3d9-ref (Windows only) Принуждает игру запуститься используя программный Direct3D “Reference” рендерер. The DirectX SDK должен быть установлен, чтобы эта команда работала. Это, по большей части, полезно для собирания автоматизированных тестовых единиц, где вы захотите убедиться, что рендеринг происходит одинаково, независимо от того, какая видеокарта используется.
-force-d3d11 (Windows only) Принуждает игру использовать для рендеринга Direct3D 11.
-force-d3d11-no-singlethreaded Включает DirectX 11.0 без указателя D3D11_CREATE_DEVICE_SINGLETHREADED
-force-opengl (Windows only) Принуждает игру использовать OpenGL для рендеринга, даже если Direct3D доступен. Обычно используется Direct3D, но когда Direct3D 9.0c не доступен, используется OpenGL.
-force-glcore (Windows only) Force the Editor to use OpenGL core profile for rendering. The Editor tries to use on the best OpenGL version available and all OpenGL extensions exposed by the OpenGL drivers. If the platform isn’t supported, Direct3D is used.
-force-glcoreXY (Windows only) Similar to -force-glcore, but requests a specific OpenGL context version. Accepted values for XY: 32, 33, 40, 41, 42, 43, 44 or 45.
-force-clamped (Windows only) Used together with -force-glcoreXY, this prevents checking for additional OpenGL extensions, allowing it to run between platforms with the same code paths.
-nographics При работе в режиме batсh, вообще не инициализирует графическое устройство. Это позволяет запустить автоматизированные рабочие процессы на устройствах, у которых даже нет графического процессора.
-nolog (Linux & Windows only) Не записывать логи. Обычно output_log.txt записан в папке *_Data рядом с исполняемым файлом игры, где печатается Debug.Log.
-popupwindow Окно будет создано как всплывающее окно (без рамки).
-screen-fullscreen Заменяет стандартную ширину экрана. Это должно целое число из диапазона поддерживаемого разрешения.
-screen-height Заменяет стандартную высоту экрана. Это должно целое число из диапазона поддерживаемого разрешения.
-screen-width Заменяет стандартную ширину экрана. Это должно целое число из диапазона поддерживаемого разрешения.
-screen-quality Заменяет стандартное качество изображения. Пример использования: /path/to/myGame -screen-quality Beautiful
-show-screen-selector Forces the screen selector dialog to be shown.
-single-instance (Linux & Windows only) Позволяет запускать только одну копию игру одновременно. Если другая копия уже запущена, то повторный запуск с -single-instance просто переключит внимание на уже существующую копию.
-parentHWND <HWND>|delayed (Windows only) This embeds the Windows Standalone application into another application. When using this, you need to pass the parent application’s window handle to the Windows Standalone application.
When passing -parentHWND delayed, the Unity application is hidden while running. You must also call SetParent for Unity in the application, which embeds the Unity window.
For more information, see this example: EmbeddedWindow.zip

Аргументы командной строки приложений Windows Store

По умолчанию, приложения Windows Store не принимают аргументы командной строки, так что, чтобы применить их, вам надо вызвать специальную функцию из App.xaml.cs/cpp или App.cs/cpp. Например,

appCallbacks.AddCommandLineArg("-nolog");

Вам следует сделать этот вызов до функции appCallbacks.Initialize*().

Command Details
-nolog Не записывает UnityPlayer.log.
-force-driver-type-warp Включает DirectX 11.0 WARP device (Больше информации http://msdn.microsoft.com/en-us/library/gg615082.aspx)
-force-d3d11-no-singlethreaded Включает DirectX 11.0 без указателя D3D11_CREATE_DEVICE_SINGLETHREADED
-force-gfx-direct Включает одно-потоковый рендеринг.
-force-feature-level–9–1 Включает DirectX 11.0 уровня функционала 9.1.
-force-feature-level–9–2 Включает DirectX 11.0 уровня функционала 9.2.
-force-feature-level–9–3 Включает DirectX 11.0 уровня функционала 9.3.
-force-feature-level–10–0 Включает DirectX 11.0 уровня функционала 10.0.
-force-feature-level–10–1 Включает DirectX 11.0 уровня функционала 10.1.
-force-feature-level–11–0 Включает DirectX 11.0 уровня функционала 11.0.
Сборка системы приложения
За кулисами