秉承技术至上的原则,这里我就直接复制粘贴了哈!
unity3d的一些命令行参数在自动化工具开发时要用到,很有用,记一下!
-
-batchmode
在 批处理模式下运行Unity。应始终与其他命令行参数一起使用,因为它确保不会弹出窗口,无需任何人为的干预。当脚本代码在执行过程中发生异常,资源服务 器更新失败或其他操作失败时Unity将立即退出,并返回代码为1。请注意,在批处理模式下, Unity将向控制台发送输出版本最小的日志。当然,日志文件将包含完整的日志信息。
-
-quit
其他命令执行完毕后将退出Unity编辑器。请注意,这可能会导致错误消息被隐藏(但他们将显示在Editor.log文件)
-
-buildWindowsPlayer < pathname >
建立一个单独的Windows游戏(例如:-buildWindowsPlayer path/to/your/build.exe)
-
-buildOSXPlayer < pathname >
建立Mac游戏(例如:-buildOSXPlayer path/to/your/build.app)
-
-importPackage < pathname >
导入提供的package,不会显示导入对话框
-
-createProject < pathname >
根据提供的路径建立一个空项目
-
-projectPath < pathname >
打开指定路径的项目
-
-logFile < pathname >
指定将要被写入编辑的log文件
-
-assetServerUpdate <IP[:port] projectName username password [r ]>
可 通过ip端口强制更新资源服务器的项目。端口是可选的,如果不是的话可以假定一个标准端口(10733)。最好使用此命令配合- projectpath参数确保你在正确的项目里工作。如果没有提供项目名字是那么就是最后一个Unity打开的项目。如果没有选择项目的路径则由- projectpath自动创建。
-
-exportPackage < exportAssetPath exportFileName >
根 据路径导出package。exportAssetPath是一个文件夹(相对Unity项目的根目录)为了导出Unity项目并且 exportFileName是package的名称。目前,此选项只能在同一个时间导出整个文件夹。这个命令通常需要使用- projectpath参数
-
-nographics (Windows only)
当运行在批处理模式,不会初始化显卡设备。这使得它可以在你的机器上自动按工作流程运行,甚至它没有GPU。
-
-executeMethod <ClassName.MethodName>
在 Unity启动的同时会执行静态方法,该项目是开放的并且是在可选资源服务器更新完成之后。这可以用来不断的整合,进行单元测试,制作模型,准备一些数据 等。如果你想通过命令行返回一个错误,你可以抛出一个异常,会引发代码为1的Unity关闭或其他引发EditorApplication.Exit非零 代码。使用executeMethod,你需要在编辑文件夹有一个脚本并且类里有一个静态函数。
-
-force-opengl (Windows only)
让游戏使用OpenGL进行渲染,即使有可用的Direct3D。通常情况是使用Direct3D,但如果是Direct3D 9.0c的不可用的话则会选用OpenGL。
-
-single-instance (Windows only)
在同一时候只允许一个游戏实例运行。如果另一个实例已在运行,然后再次通过 -single-instance启动它的话会调节到现有的这个实例。
-
-nolog (Windows only)
不产生输出日志。 通常output_log.txt被写在游戏输出目录下的*_Data文件夹中 ,在debug.log中打印输出的地方。
-
-force-d3d9-ref (Windows only)
使游戏运行在Direct3D的"Reference"软件渲染模式,必须要安装DirectX SDK才能使其工作。这主要是用于建立自动化测试对象,这样您可以确保不管是使用什么显卡,其渲染效果是完全一样的。
-
-adapter N (Windows only)
允许游戏全屏运行在另一台显示器上,其中N表示显示的号码。
-
-popupwindow (Windows only)
这个窗口将以弹出的方式创建(没有框架)
-
自动化打包
// MacOS
/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -logFile $(LOG_FILE_PATH) -projectPath $(PWD) -executeMethod CommandBuild.Build
// Windows
C:\program files\Unity\Editor\Unity.exe -quit -batchmode -logFile $(LOG_FILE_PATH) -projectPath $(PWD) -executeMethod CommandBuild.Build
原文链接:https://www.cnblogs.com/gameprogram/archive/2012/05/11/2496303.html
之所以用到命令行参数,关键在于shell脚本需要与运行脚本的人员进行交互。bash shell提供了命令行参数添加在命令后面的数据值)、命令行选项修改命令行为的单字符值)和直接读取键盘输入。
1、命令行参数向shell脚本传递数据的最基本方式是使用命令行参数。
1)读取参数读取输入的参数的变量为位置参数,位置参数通过标准数字表示,其中$0为程序名称,$1为第一个参数,$2为第二个参数,依次类推,直到$9为第九个参数。shell脚本自动将命令行参数赋值给各个位置变量。同时输入多个参数可以是数值也可以是字符串)时,必须使用空格分隔要想在参数值中包含空格,就必须使用单引号或双引号)当参数多于9个后,
@set outPath="你要输出的绝对路径"
@set unityPath="unityEditor下的可执行文件目录"
@set scenes="要打包场景的名称,可以是多个,如ascene,bscene"
echo "pac...
项目需要进行两次打包,两个exe公用一套数据,前后两次打包还需要对Unity的Main场景中某物体挂载脚本的一个public bool型变量,每次的手残都需要重头开始,有点无语,所以Google大法让我知道了bat,powershell相关,便试着双击bat进行完成两次打包
1.首先在Editor文件夹内新建类进行build
[MenuItem("Build/Build Editor")]
public static void BuildEditor()
Unity 工具类,自己整理的一些游戏开发可能用到的模块,单独独立使用,方便游戏开发。本节介绍,Jenkins 自动化打包工具,包括下载安装,以及基本的操作等,这里简单说明,如果你有更好的方法,欢迎留言交流。Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。1、持续的软件版本发布/测试项目。2、监控外部调用执行的工作。
executeMethod函数在Plant Simulation模型中启动用户定义的方法并返回一个值。 该方法在调试器未打开的模式下执行,因此在执行期间方法中发生的错误不会显示在调试器中。 Plant Simulation仅在控制台中显示错误消息。
参数simpleObjID *方法指定要启动的方法的对象ID。
参数simpleObjID * caller指定要在带有问号的方法中调用的对象的对象ID。
参数simpleObjID * activeElement使用匿名标识符@指定要在方法中调用
-batchmode
在批处理模式下运行。应始终与其他命令行参数一起使用,因为它确保不会弹出窗口,无需任何人为的干预。当脚本代码在执行过程中发生异常,资源服务 器更新失败或其他操作失败时Unity将立即退出,并返回代码为1。请注意,在批处理模式下, Unity将向控...
在使用Unity命令行时候用到参数时候,需要将参数从外部传递,在C#中读取。
例如一个shell调用Unity的命令:
# [unity path] -quit -projectpath [project path] -executeMethod [class.method] [platfotm]
其中[platform]就是传递的参数,需要在C#中接收,接收方如下:
unity 命令行模式(batchmode)方便大家实现自动化编译构建,但是仅 unity 本身提供的功能不能满足我们的要求怎么办,这个时候就要使用到了 unity 提供的 -executeMethod 参数,它的使用方法如下:
Windows:
C:\program files\Unity\Editor\Unity.exe -quit -batchmode -executeMethod ...
这个bat批处理首先判断Unity是否运行中,如果运行中,则先杀掉Unity,然后启动Unity并执行某个Editor的静态函数py脚本例子:(把下面的python脚本保存为unity_call.py,放在工程目录中,即Assets的外层目录)在Unity中的Editor目录中新建一个MyEditorScript.cs脚本,如下。
在命令行运行Unity实例.它通常和其它的命令行参数一起使用,因为它确保了不会弹出Windows窗口,也不会被人工干预.
当脚本出现异常时,资源更新将会停止,并且其它的操作也将失败.Unity会立刻关闭,并返回1.需要
1. The Unity code here is looking for a file name 'global-metadata.dat' in a Data/Managed/Metadata directory - that is what MatadataCacge::Initialize loads. If your
project is re-packaging the Unity
'Dim retval 'retval = Shell("C:\Program Files\Outlook Express\msimn.exe", 1) Dim objExecuteFile As New System.Diagnostics.ProcessStartInfo Dim objExecute As New System.Diagnostics.Process objExecuteFi