命令行参数
通常可以在桌面双击 Unity 图标,启动程序,但是,也可以通过命令行(例如,MacOS 终端或 Windows Command 窗口)运行程序。若使用这种方式启动 Unity,它将可以接受启动命令和信息,这将非常有助于测试套件、自动构建和其他制作任务。
在 MacOS 中,可以在终端 (Terminal) 输入以下内容,启动 Unity:-
/Applications/Unity/Unity.app/Contents/MacOS/Unity
…而在 Windows 中,应在 cmd 窗口输入:
"C:Program Files (x86)UnityEditorUnity.exe"
独立版 Unity 游戏可以用相同的方式启动。
命令行参数
如上所述,在启动编辑器和构建游戏时,也可以选择性地使用其他命令和信息。使用以下命令行参数并可达到这一目的:-
- -batchmode
- 在批处理模式下运行 Unity。此命令行应始终与其他命令行参数配合使用,因为它可以确保不会弹出窗口,无需任何人为干预。在执行脚本代码时发生异常、资源服务器更新失败或其他操作失败时,Unity 将立即退出,并返回代码 1。请注意:在批处理模式下,Unity 将向控制台发送最小版本的日志输出。当然,资源包。不显示导入对话框。
- -createProject <pathname>
- 在指定路径创建空工程。
- -projectPath <pathname>
- 在指定路径打开工程。
- -logFile <pathname>
- 指定写入编辑器或 Windows 独立版日志文件的位置。
- -assetServerUpdate <IP[:port] projectName username password [r <revision>]>
- 在 IP:port 部分给出的资源服务器 (Asset Server) 中强制执行工程更新。端口为可选,若未指定,则假设为标准端口 (10733)。建议将此命令与 -projectPath 参数配合使用,以确保更新正确的工程。如果未给出工程名称,那么将使用 Unity 上次打开的工程。如果 -projectPath 指定的路径不存在工程,那么将自动创建此工程。
- -exportPackage <exportAssetPath1 exportAssetPath2 ExportAssetPath3 exportFileName>
- 根据给定路径(或给定路径集合)导出资源包。exportAssetPath 是从 Unity 工程中导出的文件夹(相对 Unity 工程的根目录),exportFileName 是指资源包的名称。目前,此选项仅能导出整个文件夹。此参数通常需要与 -projectPath 参数同时使用。
- -nographics(仅限 Windows)
- 当以批处理模式运行时,完全不需要初始化图形设备。这可以让您在机器上自动运行工作流,即使没有 GPU 同样如此(只有在焦点对准窗口时才能运行自动工作流,否则将不能发送模拟输入命令)。使用此选项生成的独立版播放器不具有任何图形。
- -executeMethod <ClassName.MethodName>
- 在启动 Unity 之后、打开工程之后以及执行可选资源服务器更新之后,立即执行静态类函数。此参数可用来不断整合、执行单元测试、完成构建、准备数据等等。如果希望从命令行 (commandline) 返回错误,那么可以抛出一个异常,引起 Unity 以 1 值退出,或调用具有非零代码的 EditorApplication.Exit。若想要传递参数,可以将其添加至命令行,并使用 System.Environment.GetCommandLineArgs 在类函数内检索。
如需使用 -executeMethod
,必须在编辑器 (Editor) 文件夹中有一个脚本,并在类中有一个静态函数。
// C# exampleusing UnityEditor;class MyEditorScript{ static void PerformBuild () { string[] scenes = { "Assets/MyScene.unity" }; BuildPipeline.BuildPlayer(scenes, ...); }}
// JavaScript examplestatic void PerformBuild (){ string[] scenes = { "Assets/MyScene.unity" }; BuildPipeline.BuildPlayer(scenes, ...);}
用法示例
在批处理模式下执行 Unity,执行 MyEditorScript.MyMethod
类函数并在完成之后退出。
Windows:C:program filesUnityEditor>Unity.exe -quit -batchmode -executeMethod MyEditorScript.MyMethod
Mac OS:/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -executeMethod MyEditorScript.MyMethod
在批处理模式下执行 Unity。使用给定的工程路径,并从资源服务器更新此工程。从资源服务器下载并导入所有资源之后,执行给定类函数。完成执行此类函数之后,自动退出 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 独立版播放器命令行参数
使用 Unity 构建独立版播放器也需要了解一些命令行参数:
- -batchmode
- 以 "headless" 模式运行游戏。游戏将不会显示任何内容,或接受用户输入。此参数通常有助于为网络游戏运行服务器。
- -force-opengl(仅限 Windows)
- 让游戏使用 OpenGL 渲染,即使有可用的 Direct3D 渲染。通常使用 Direct3D,若 Direct3D 9.0c 不可用,则使用 OpenGL。
- -force-d3d9(仅限 Windows)
- 让游戏使用 Direct3D 9 渲染。这是默认选项,通常无需传递。
- -force-d3d11(仅限 Windows)
- 让游戏使用 Direct3D 11 渲染。
- -single-instance (仅限 Linux 和 Windows)
- 统一时间只能运行一个游戏实例。如果另一个实例已在运行,那么使用
-single-instance
再次启动的话会聚焦现有实例。 - -nolog(仅限 Windows)
- 不产生输出日志。通常,
output_log.txt
被写入到游戏可执行文件旁的*_Data
文件夹,在这里可以打印 Debug.Log 输出。 - -force-d3d9-ref(仅限 Windows)
- 使用 Direct3D 的 "Reference" 软件渲染器运行游戏。如需运行此参数,则必须安装 DirectX SDK。这对于构建自动测试套件非常有用,因为无论是否使用显卡,它都能保证渲染的精确度。
- -adapter N(仅限 Windows)
- 允许在另外一个显示器上全屏运行游戏,N 代表显示器数量。
- -popupwindow(仅限 Windows)
- 窗口将创建为弹出式窗口(没有框架)。
- -screen-width(仅限 Linux 和 Windows)
- 重写默认屏幕宽度。 必须是支持分辨率以内的整数。
- -screen-height(仅限 Linux 和 Windows)
- 重写默认屏幕高度。 必须是支持分辨率以内的整数。
- -screen-quality(仅限 Linux)
- 重写默认屏幕质量。 用法示例为:
/path/to/myGame -screen-quality Beautiful
编辑器安装程序
通过命令行安装 Unity 编辑器时,可使用以下选项:
- /S(仅限 Windows)
- 执行静默安装(不提问)。
- /D=PATH(仅限 Windows)
- 设置默认安装目录。与静默安装选项组合时非常有用。
用法示例
将 Unity 静默安装至 E:DevelopmentUnity。
Windows:UnitySetup.exe /S /D=E:DevelopmentUnity