Обычно, Unity будет запущен, если дважды кликнуть по ярлыку на рабочем столе, но его также можно запустить из командной строки (т.е. из терминала MacOS или из командной строки Windows). При запуске таким образом, можно задать Unity команды и информацию на старте, которые могут быть очень полезны для целей тестирования, автоматизированных сборок и других производственных целей.
В MacOS, вы можете запустить Unity из терминала введя:-
/Applications/Unity/Unity.app/Contents/MacOS/Unity
"C:\Program Files\Unity\Editor\Unity.exe"
"C:\Program Files (x86)\Unity\Editor\Unity.exe"
Игры, сделанные в Unity, могут быть запущены похожим путём.
В MacOS, вы можете запустить Unity из терминала введя:-
/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -serial R3-XXXX-XXXX-XXXX-XXXX-XXXX -username 'JoeBloggs@example.com' -password 'MyPassw0rd'
…в то время, как в Windows вам надо ввести
"C:\Program Files\Unity\Editor\Unity.exe" -quit -batchmode -serial R3-XXXX-XXXX-XXXX-XXXX-XXXX -username "JoeBloggs@example.com" -password "MyPassw0rd"
"C:\Program Files (x86)\Unity\Editor\Unity.exe" -quit -batchmode -serial R3-XXXX-XXXX-XXXX-XXXX-XXXX -username "JoeBloggs@example.com" -password "MyPassw0rd"
Как упоминалось выше, редактор и собранные игры могут опционально быть запущены с дополнительными командами и указаниями. Это делается используя следующие опции командной строки:-
-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, xbox360, xboxone, ps3, ps4, psp2, wsa, wp8, tizen, samsungtv. |
-buildWebPlayer <pathname> | Собрать приложение для WebPlayer (например, -buildWebPlayer path/to/your/build). |
-buildWebPlayerStreamed <pathname> | Собрать потоковое приложение для WebPlayer (например, -buildWebPlayerStreamed path/to/your/build). |
-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 will be used. If not specified, the results will be places in 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 request 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 request a specific OpenGL ES context version. Accepted values for XY: 30, 31 or 32. |
-force-clamped (Windows only) | Used together with -force-glcoreXY, but it prevents checking for additional OpenGL extensions allowing 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 - needed when activating. This option is new in Unity 5.1. |
-projectPath <pathname> | Открыть проект по заданному пути. |
-quit | Закрывает редактор Unity после того, как другие команды были исполнены. Учтите, что из-за этого сообщения об ошибках могут быть скрыты (однако они появятся в файле Editor.log). |
-returnlicense | Return the currently active license to the license server. Please allow a few seconds before license file is removed, as Unity needs to communicate with the license server. This option is new in Unity 5.0. |
-runEditorTests | Run editor tests from the project. This argument requires projectPath and it’s good to run it with batchmode argument. quit is not required as the editor will automatically close down after the run is finished. |
-serial <serial> | Activates Unity with the specified serial key. It is recommended to pass “-batchmode -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 license file is created, as 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. In case activation fails, see the Editor.log for info. This option is new in Unity 5.0. |
-silent-crashes | Don’t display crash dialog. |
// C# example
using UnityEditor;
class MyEditorScript
{
static void PerformBuild ()
{
string[] scenes = { "Assets/MyScene.unity" };
BuildPipeline.BuildPlayer(scenes, ...);
}
}
// JavaScript example
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
These should only be used under special circumstances, or when directed by Support.
-enableIncompatibleAssetDowngrade | Use when you have content made by a newer, incompatible version of Unity, that you want to downgrade to work with your current version of Unity. When enabled, Unity will present you with a dialog asking for confirmation of such a downgrade if you attempt to open a project that would require it. This procedure is unsupported and highly risky, and should only be used as a last resort. |
Приложения собранные в Unity так же воспринимают некоторые аргументы командной строки:
-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-glcore (Windows only) | Make the editor 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 request 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, but it prevents checking for additional OpenGL extensions allowing to run between platforms with the same code paths |
-nographics | При работе в режиме batсh, вообще не инициализирует графическое устройство. Это позволяет запустить автоматизированные рабочие процессы на устройствах, у которых даже нет графического процессора. |
-nolog (Linux & Windows only) | Не записывать логи. Обычно output_log.txt записан в папке *_Data рядом с исполняемым файлом игры, где печатается Debug.Log. |
-popupwindow | Окно будет создано как всплывающее окно (без рамки). |
-window-mode mode (Windows only) | Overrides the default behavior of the Fullscreen Mode setting. Possible options are: exclusive, borderless. |
-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> (Windows only) | Embeds Windows Standalone application into another application, you have to pass parent application’s window handle to Windows Standalone application. See this example EmbeddedWindow.zip for more information. |
По умолчанию, приложения Windows Store не принимают аргументы командной строки, так что, чтобы применить их, вам надо вызвать специальную функцию из App.xaml.cs/cpp или App.cs/cpp. Например,
appCallbacks.AddCommandLineArg("-nolog");
| | | |:—|:—| |-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.| …в то время, как в Windows вам надо ввести …в то время, как в Windows вам надо ввести … в командую строку. On PC you can use Command prompt: …в то время, как в Windows вам надо ввести
Вам следует сделать этот вызов до функции appCallbacks.Initialize*()
.