使用命令行运行unity并执行某个静态函数(运用于远程打包)
2017-04-28 15:34
204 查看
可以写个python,这个python去接收远程的命令,然后执行一个bat批处理
这个bat批处理首先判断Unity是否运行中,如果运行中,则先杀掉Unity,然后启动Unity并执行某个Editor的静态函数
bat脚本例:
注:Unity工程目录是E:\my_project\testProject
Unity命令行参数解释:
-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 <revision>]>
可 通过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,你需要在编辑文件夹有一个脚本并且类里有一个静态函数。
-batchmode
在"headless"模式下运行游戏。游戏将不显示任何内容,或接受用户输入。这对运行网络游戏的服务器有很大的作用的。
-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)
这个窗口将以弹出的方式创建(没有框架)
这个bat批处理首先判断Unity是否运行中,如果运行中,则先杀掉Unity,然后启动Unity并执行某个Editor的静态函数
bat脚本例:
::判断Unity是否运行中 TASKLIST /V /S localhost /U %username%>tmp_process_list.txt TYPE tmp_process_list.txt |FIND "Unity.exe" IF ERRORLEVEL 0 (GOTO UNITY_IS_RUNNING) ELSE (GOTO START_UNITY) :UNITY_IS_RUNNING ::杀掉Unity TASKKILL /F /IM Unity.exe ::停1秒 PING 127.0.0.1 -n 1>NUL GOTO START_UNITY :START_UNITY C: CD C:\Program Files\Unity\Editor .\Unity.exe -projectPath E:\my_project\testProject -quit -batchmode -executeMethod MyEditorScript.RunTest PAUSE
注:Unity工程目录是E:\my_project\testProject
Unity命令行参数解释:
-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 <revision>]>
可 通过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,你需要在编辑文件夹有一个脚本并且类里有一个静态函数。
-batchmode
在"headless"模式下运行游戏。游戏将不显示任何内容,或接受用户输入。这对运行网络游戏的服务器有很大的作用的。
-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)
这个窗口将以弹出的方式创建(没有框架)
相关文章推荐
- 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.4.1
- 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0
- Ubuntu系统下的Hadoop集群(2)_使用命令行编译打包运行自己的MapReduce程序
- 使用命令行对java程序的编译运行和打包
- 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.4.1
- 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.4.1
- 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.7.2
- 使用命令行编译打包运行自己的MapReduce程序 hadoop2.7.3
- 使用命令行编译、打包、运行WordCount--不用eclipse
- 使用命令行编译打包运行MapReduce程序
- 使用Ant构建web项目 从编译到测试 生成测试报告 打包 邮件发送 远程下载tomcat 部署运行一条龙服务之ant脚本
- 使用脚本引擎增加程序运行时动态执行能力(Java篇)
- 如何使用BAT文件批量运行SQL语句,并保存执行结果
- 使用命令行方式运行 JMeter 脚本
- 【asp.net 】使用js结合hidden控件实现在后台运行一段程序后提示确认,确认通过后继续执行后台代码~~~
- 使用Eclipse打包可执行jar
- 使用nohup让程序在远程主机后台运行
- 使用x-win32从window上远程运行X-window程序
- 如何重新获得使用脚本远程管理运行SP2 的计算机的能力
- 使用命令行方式运行 JMeter 脚本