Por lo general, Unity se ejecutará haciendo doble click en el icono del escritorio, pero también es posible ejecutarlo desde la línea de comandos (ej. la terminal de MacOS o una ventana de símbolo del sistema en Windows). Cuando se inicia de esta manera, Unity puede recibir comandos e información al iniciarse, lo cual puede resultar muy útil para pruebas automatizadas, compilaciones automáticas y otras tareas de producción.
En MacOS, usted puede ejecutar Unity desde el terminal escribiendo:
/Applications/Unity/Unity.app/Contents/MacOS/Unity
"C:\Program Files\Unity\Editor\Unity.exe"
"C:\Program Files (x86)\Unity\Editor\Unity.exe"
Los juegos standalone de Unity pueden ejecutarse en una manera similar.
En MacOS, usted puede ejecutar Unity desde el terminal escribiendo:
/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -serial R3-XXXX-XXXX-XXXX-XXXX-XXXX -username 'JoeBloggs@example.com' -password 'MyPassw0rd'
…mientras que en Windows 64 bit, usted debe escribir
"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"
Como se mencionó anteriormente, al editor e incluso a los juegos compilados se les puede pasar opcionalmente comandos e información adicional en el arranque. Esto se hace usando las siguientes opciones de línea de comandos:
-assetServerUpdate <IP[:port] projectName username password [r <revision>]> | Obligue una actualización del proyecto en el Asset Server dado por IP:port. El port (puerto) es opcional y si no es dado, se asumen que es uno estándar (10733). Es recomendable utilizar este comando en conjunto con el argumento -projectPath para asegurar que usted está trabajando con el proyecto correcto. Si no hay un nombre de proyecto dado entonces el último proyecto abierto en Unity es utilizado. Si no existe un proyecto con la ruta dada por -projectPath entonces uno es creado automáticamente. |
-batchmode | Corra Unity en modo batch (modo por lotes). Esto siempre debería ser utilizado en conjunto con otros comandos de linea de argumentos ya que asegura que ninguna ventana emergente aparezca y elimine la necesidad de una intervención humana. Cuando una excepción ocurre durante la ejecución de código script, las actualizaciones del asset server fallan u otras operaciones falla, Unity va a inmediatamente salirse con un código de retorno de 1. Tenga en cuenta que en batch mode ( modo por lotes), Unity va a enviar una versión minima de su output de registro a la consola. Sin embargo, los Log Files todavía contienen la información completa de registro. Tenga en cuenta que abrir un proyecto en batch mode mientras el Editor tiene el mismo proyecto abierto, no es soportado. Solo una sola instancia de Unity puede ejecutarse a la vez. |
-buildLinux32Player <pathname> | Construir un reproductor standalone Linux de 32-bit (e.g. -buildLinux32Player path/to/your/build). |
-buildLinux64Player <pathname> | Construir un reproductor standalone Linux de 64-bit (e.g. -buildLinux64Player path/to/your/build). |
-buildLinuxUniversalPlayer <pathname> | Construir un reproductor standalone Linux combinado de 32-bit y 64-bit (e.g. -buildLinuxUniversalPlayer path/to/your/build). |
-buildOSXPlayer <pathname> | Construir un reproductor standalone Mac de 32-bit (e.g. -buildOSXPlayer path/to/your/build.app). |
-buildOSX64Player <pathname> | Construir un reproductor standalone Mac de 64-bit (e.g. -buildOSX64Player path/to/your/build.app). |
-buildOSXUniversalPlayer <pathname> | Construir un reproductor standalone Mac combinado de 32-bit y de 64-bit (e.g. -buildOSXUniversalPlayer path/to/your/build.app). |
-buildTarget <name> | Permite la selección de un objetivo de construcción activo antes de que un proyecto sea cargado. Las opciones posibles son: win32, win64, osx, linux, linux64, ios, android, web, webstreamed, webgl, xbox360, xboxone, ps3, ps4, psp2, wsa, wp8, bb10, tizen, samsungtv. |
-buildWebPlayer <pathname> | Construir un Reproductor Web (e.g. -buildWebPlayer path/to/your/build). |
-buildWebPlayerStreamed <pathname> | Construir un Reproductor Web que esté streamed (e.g. -buildWebPlayerStreamed path/to/your/build). |
-buildWindowsPlayer <pathname> | Construir un reproductor standalone Windows de 32-bit (e.g. -buildWindowsPlayer path/to/your/build.exe). |
-buildWindows64Player <pathname> | Construir un reproductor standalone Windows de 64-bit (e.g. -buildWindows64Player path/to/your/build.exe). |
-cleanedLogFile | Una característica de depuración detallada. StackTraceLogging permite que las características estén controladas para que den un registro detallado. Todos los ajustes permiten None, Script Only y Full en ser seleccionados. |
-createProject <pathname> | Crear un proyecto vacío en la ruta indicada. |
-editorTestsCategories | Filtra las pruebas del editor por categorías. Separe las categorías de prueba con una coma. |
-editorTestsFilter | Filtra las pruebas del editor por nombres. Separe los nombres de las pruebas con una coma. |
-editorTestsResultFile | Ruta dónde el archivo resultante sería colocado. Si la ruta es una carpeta, un nombre de archivo predeterminado será utilizado. Si no se especifica, los resultados serán puestos en la carpeta raíz del proyecto. |
-executeMethod <ClassName.MethodName> | Ejecuta el método estático tan pronto Unity comienza, el proyecto esté abierto y después de que la actualización opcional del asset server se haya realizado. Esto puede ser usado para hacer una integración continua, realizar pruebas de Unity, hacer construcciones, preparar algunos datos, etc. Si usted quiere retornar un error desde el proceso de la linea de comandos, usted puede o lanzar una excepción que va a causar que Unity se salga con 1 o llamar EditorApplication.Exit con un código diferente a cero. Si usted quiere pasar parámetros usted puede agregarlos a la linea de comandos y recuperarlos dentro del método utilizando System.Environment.GetCommandLineArgs. Para utilizar -executeMethod , usted necesita colocar el script que encierra en la carpeta Editor. El método para ser ejecutado debe ser definido como static. |
-exportPackage <exportAssetPath1 exportAssetPath2 ExportAssetPath3 exportFileName> | Exporta un paquete dada una ruta (o un conjunto de rutas dadas). exportAssetPath es una carpeta (relativa a la raíz del proyecto de Unity) para exportar del proyecto de Unity y exportFileName es el nombre del paquete. Actualmente, esta opción puede solamente exportar carpetas enteras a la vez. Este comando normalmente necesita ser usado con el argumento -projectPath . |
-force-d3d9 (Windows solamente) | Haga que el editor utilice Direct3D 9 para renderizar. Normalmente el API de gráficos depende en los player settings (típicamente cae en D3D11). |
-force-d3d11 (Windows solamente) | Haga que el editor utilice Direct3D 11 para renderizar. Normalmente el API de gráficos depende en los player settings (típicamente cae en D3D11). |
-force-glcore (Windows solamente) | Hace que el editor utilice OpenGL 3/4 core profile para renderizar. El editor intenta utilizar la mejor versión OpenGL disponible y todas las extensiones OpenGL expuestas por los drivers de OpenGL. Si la plataforma no es soportada, Direct3D será utilizado. |
-force-glcoreXY (Windows solamente) | Similar a -force-glcore pero solicita una versión de contexto OpenGL especifica. Los valores aceptados para XY: 32, 33, 40, 41, 42, 43, 44 o 45. |
-force-gles (Windows solamente) | Hace que el editor utilice OpenGL para sistemas embebidos de renderizado. El editor intenta utilizar la mejor versión OpenGL ES disponible y todas las extensiones OpenGL ES expuestas por los drivers de OpenGL. |
-force-glesXY (Windows solamente) | Similar a -force-gles pero solicita una versión de contexto OpenGL ES específica. Los valores aceptados para XY: 30, 31 o 32. |
-force-clamped (Windows solamente) | Utilizado en conjunto con -force-glcoreXY, pero previene la revisión de extensiones adicionales OpenGL permitiendo que haya una ejecución entre plataformas con las mismas rutas de código |
-force-free | Haga que el editor corra como si hubiera una licencia gratuita de Unity en la maquina, incluso si una licencia Unity Pro está instalada. |
-importPackage <pathname> | Importe el package dado. Ningún dialogo de importación es mostrado. |
-logFile <pathname> | Especifique dónde los archivos de registro del editor o Windows/Linux/OSX standalone serán escritos. |
-nographics | Cuando se corra en batch mode, no inicialize en absoluto el dispositivo gráfico. Esto hace que sea posible correr sus flujos de trabajo automatizados en maquinas que no tienen un GPU (los flujos de trabajo automatizados solo funcionan, cuando usted tiene una ventana enfocada, de lo contrario usted no podrá enviar comandos de input simulados). Por favor tenga en cuenta -nographics no le permitirá a usted bake GI en OSX, ya que Enlighten requiere una aceleración de GPU. |
-password <password> | La clave del usuario - necesitada cuando se activa. Esta opción es nueva en Unity 5.1. |
-projectPath <pathname> | Abrir el proyecto en la ruta indicada. |
-quit | Salga del editor de Unity después de que otros comandos hayan terminado de ejecutarse. Tenga en cuenta que esto puede hacer que los mensajes de error no se muestren (pero se pueden ver en el archivo Editor.log). |
-returnlicense | Retorna la licencia actualmente activa al license server. Por favor permita unos pocos segundos antes de que el archivo de licencia sea removido, ya que Unity necesita comunicarse con el licences server. Esta opción es nueva en Unity 5.0. |
-runEditorTests | Corra pruebas del editor del proyecto. Este argumento requiere projectPath y es bueno para correr con el argumento batchmode. quit no se requiere ya que el editor va a cerrarse automáticamente después de que run haya terminado. |
-serial <serial> | Activa Unity con la clave serial especificada. Es recomendado pasar los argumentos “-batchmode -quit” también, con el fin de salirse de Unity cuando finalice, si se está utilizando esta activación de Unity automatizada. Por favor permítale unos segundos antes de que el archivo de licencia sea creado, ya que Unity necesita comunicarse con el license server. Asegúrese de que la la carpeta para el archivo de la licencia exista y tenga unos permisos apropiados antes de ejecutar Unity con este argumento. En caso de que la activación falle, ver el Editor.log para más información. Esta opción es nueva en Unity 5.0. |
-silent-crashes | No muestre un dialogo de crash. |
// 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, ...);
}
El siguiente comando ejecuta Unity en modo batch, ejecuta el método MyEditorScript.MyMethod
y luego se cierra al finalizar.
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
El siguiente comando ejecuta Unity en modo batch y actualiza desde el servidor de assets utilizando la ruta del proyecto suministrado. El método se ejecuta después de que todos los assets se han descargado e importado desde el servidor de assets. Después de que el método haya terminado su ejecución, Unity se cierra automáticamente.
/Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -projectPath ~/UnityProjects/AutobuildProject -assetServerUpdate 192.168.1.1 MyGame AutobuildUser l33tpa33 -executeMethod MyEditorScript.PerformBuild -quit
Estos solamente deben ser utilizados debajo de circunstancias especiales, o cuando sean dirigidas por Soporte.
-enableIncompatibleAssetDowngrade | Utilice cuando usted tenga contenido hecho por una nueva, incompatible versión de Unity, la cual usted quiere bajar para que funcione con su versión actual de Unity. Cuando esté activado, Unity va a presentarle un dialogo preguntando para una confirmación de tal downgrade si usted intenta abrir un proyecto que lo requiera. Este procedimiento no es soportado y es de alto riesgo, y solo debe ser utilizado como último recurso. |
Los reproductores Standalone construidos con Unity también entienden algunos argumentos de linea de comando:
-adapter N (Windows solamente) | Le permite al juego correr pantalla completa en otra pantalla. El N mapea a un adaptador de pantalla Direct3D. En la mayoría de casos hay una relación uno-a-uno entre los adaptadores y las tarjetas de videos. En las tarjetas que soportan multi-head (pueden manejar múltiples monitores en una sola tarjeta) cada “head” puede tener su propio adaptador. |
-batchmode | Corra el juego en modo “headless”. El juego no va a mostrar cualquier cosa o aceptar input de usuario. Esto en la mayoría es útil para correr servidores para networked games. |
-force-d3d9 (Windows solamente) | Haga que el juego utilice Direct3D 9 para el renderizado. Normalmente el API de gráficos depende en los player settings (típicamente cae a D3D11). |
-force-d3d9-ref (Windows solamente) | Haga que el juego corra utilizando software de renderizado “Reference” de Direct3D. El DirectX SDK tiene que estar instalado para que esto funcione. Esto en la mayoría es útil para construir un conjunto de pruebas automatizadas, dónde usted quiere asegurar que el renderizado es lo mismo sin importar que tarjeta gráfica está siendo utilizada. |
-force-d3d11 (Windows solamente) | Haga que el juego utilice Direct3D 11 para renderizar. |
-force-d3d11-no-singlethreaded | Obliga a DirectX 11.0 en ser creado sin una flag D3D11_CREATE_DEVICE_SINGLETHREADED. |
-force-glcore (Windows solamente) | Hace que el editor utilice el perfil núcleo (core profile) de OpenGL para renderizado. El editor intenta utilizar la mejor versión de OpenGL disponible y todas las extensiones OpenGL expuestas por los drivers OpenGL. Si la plataforma no es soportada, Direct3D es utilizada. |
-force-glcoreXY (Windows solamente) | Similar a -force-glcore pero solicita una versión de contexto OpenGL especifica. Los valores aceptados para XY: 32, 33, 40, 41, 42, 43, 44 o 45. |
-force-clamped (Windows solamente) | Utilizado en conjunto con -force-glcoreXY, pero previene la revisión de extensiones adicionales OpenGL permitiendo que haya una ejecución entre plataformas con las mismas rutas de código |
-nographics | Cuando se corra en batch mode, no inicialize el dispositivo gráfico en absoluto. Esto hace que sea posible ejecutar sus flujos de trabajo automatizados en maquinas que no tienen un GPU. |
-nolog (Linux & Windows solamente) | No produzca un output de registro (log). Normalmente output_log.txt es escrito en la carpeta *_Data alado del ejecutable del juego, dónde el output Debug.Log es imprimido. |
-popupwindow | La ventana será creada como una ventana emergente (sin un frame). |
-window-mode mode (Windows solamente) | Anula el comportamiento predeterminado del ajuste de pantalla completa. Las opciones posibles son: exclusive, borderless. |
-screen-fullscreen | Anula el estado por defecto de pantalla completa. Este debe ser 0 o 1. |
-screen-height | Anula la altura de la pantalla predetermina. Este debe ser un entero de una resolución soportada. |
-screen-width | Anula la anchura de pantalla predeterminada. Este debe ser un entero de una resolución soportada. |
-screen-quality | Anula la calidad e la pantalla predeterminada. Un uso de ejemplo sería: /path/to/myGame -screen-quality Beautiful
|
-show-screen-selector | Obliga al dialogo selector de la pantalla en ser mostrado. |
-single-instance (Linux & Windows solamente) | Permite solo una instancia del juego a correr a la vez. Si otra instancia ya está corriendo entonces lanzando nuevamente -single-instance va a enfocarse en la existente. |
-parentHWND <HWND> (Windows solamente) | 1 Incrusta la aplicación de Windows Standalone a otra aplicación, usted tiene que pasar el manejo de la ventana de la aplicación padre a la aplicación Standalone Windows. Ver este ejemplo EmbeddedWindow.zip para más información. |
Las aplicaciones de Windows Store no aceptan argumentos de línea de comandos por defecto, por lo que para poder pasarlos hay que llamar a una función especial de App.xaml.cs/cpp o App.cs/cpp. Por ejemplo,
appCallbacks.AddCommandLineArg("-nolog");
| | | |:—|:—| |-nolog| No generar UnityPlayer.log.| |-force-driver-type-warp| Obliga el dispositivo WARP DIrectX 11.0 http://msdn.microsoft.com/en-us/library/gg615082.aspx)| |-force-d3d11-no-singlethreaded| Obliga a DirectX 11.0 en ser creado sin una flag D3D11_CREATE_DEVICE_SINGLETHREADED.| |-force-gfx-direct| Forzar renderización en un solo hilo.| |-force-feature-level–9–1| Obliga DirectX 11.0 al nivel de características 9.1.| |-force-feature-level–9–2| Obliga DirectX 11.0 al nivel de características 9.2.| |-force-feature-level–9–3| Obliga DirectX 11.0 al nivel de características 9.3.| |-force-feature-level–10–0| Obliga DirectX 11.0 al nivel de características 10.0.| |-force-feature-level–10–1| Obliga DirectX 11.0 al nivel de características 10.1.| |-force-feature-level–10–1| Obliga DirectX 11.0 al nivel de características 11.0.| …mientras que en Windows 64 bit, usted debe escribir …. o esto cuando se está en Windows 32 bit …en la línea de comandos. En PC usted puede utilizar el Command prompt: …. o esto cuando se está en Windows 32 bit
Usted debe realizar esta llamada antes de la función appCallbacks.Initialize*()
.