赞
踩
各位Unity开发者都一定被漫长的项目打包过程折磨过,同时公司的Git库一般都不上传各种日志文档和环境配置,克隆下来打开再打包可执行程序繁琐又耗时,这些对测试人员进行打包测试非常的不友好。
是否可以开发一款软件,让测试人员在GIT库上克隆仓库后可以直接进行打包,不再需要打开Unity来打包呢?
因此我想到了使用命令行来对Unity进行打包,再用WinForm套了个外壳,让操作更符合人的习惯。
在项目目录下新建一个C#脚本文件,命名为BuildScript,可以在该脚本中修改需要打包的场景,打包的目标路径和打包之后的程序名。
BuildScript代码如下:
using UnityEditor; using UnityEngine; public class BuildScript { private static string[] scenes = { "Assets/Scenes/SampleScene.unity" }; //要打包的场景 private static string Path = "Build"; //打包的目标路径,默认为父路径下的Build文件夹 private static string GameName = "MyGame"; //打包后的程序名 /// <summary> /// 打包成EXE /// </summary> [MenuItem("Build/Build EXE")] public static void BuildEXE() { string WindowsPath = "/Windows/"; BuildPipeline.BuildPlayer(scenes, Path + WindowsPath + GameName + ".exe", BuildTarget.StandaloneWindows, BuildOptions.None); Debug.Log(Path + WindowsPath + GameName + ".exe"+"已生成"); } /// <summary> /// 打包成APK /// </summary> [MenuItem("Build/Build APK")] public static void BuildAPK() { string AndroidPath = "/Android/"; BuildPipeline.BuildPlayer(scenes, Path + AndroidPath + GameName + ".apk", BuildTarget.Android, BuildOptions.None); } }
保存BuildScript脚本之后,回到 Unity 点击菜单栏 Build-Build EXE或Build-Build APK 即可进行打包。
可以查看:Unity命令行官方文档
-batchmode
在 批处理模式下运行Unity,它不会弹出窗口。当脚本代码在执行过程中发生异常或其他操作失败时Unity将立即退出,并返回代码为1。
-quit
命令执行完毕后将退出Unity编辑器。请注意,这可能会导致错误消息被隐藏(但他们将显示在Editor.log文件)
-buildWindowsPlayer
构建一个32位的Windows平台的exe(例如:-buildWindowsPlayer path/to/your/build.exe)
-buildWindows64Player
构建一个64位的Windows平台的exe(例如:-buildWindows64Player path/to/your/build.exe)
-importPackage
导入一个的package,不会显示导入对话框
-createProject
根据提供的路径建立一个空项目
-projectPath
打开指定路径的项目
-logFile
指定输出的日志文件
-nographics
当运行在批处理模式,不会初始化显卡设备,不需要GPU参与;但如果你需要执行光照烘焙等操作,则不能使用这个参数,因为它需要GPU运算。
-executeMethod
在Unity启动的同时会执行静态方法。也就是说,使用executeMethod我们需要在编辑文件夹有一个脚本并且类里有一个静态函数。
-single-instance
在同一时间只允许一个游戏实例运行。如果另一个实例已在运行,然后再次通过-single-instance启动它的话会调节到现有的这个实例。
-nolog
不产生输出日志。 通常output_log.txt被写在游戏输出目录下的*_Data文件夹中
在编译器所在目录下:
使用命令行输入,其中 “C:\Unity Project\PureMVC_study2” 是工程所在的目录,
-executeMethod BuildScript.BuildEXE是调用BuildScript中的静态方法BuildEXE。
Unity.exe -batchmode -nographics -quit -projectPath "C:\Unity Project\PureMVC_study2" -executeMethod BuildScript.BuildEXE
命令行执行完毕后会在工程目录下的Build文件夹中生成EXE文件。
注意:一个Unity工程只能打开一个实例,所以如果我们已经手动用Unity打开了工程,此时执行该命令是会报错的。请确保已关闭相应的工程。
此处可能用Python来写会更轻量快捷,因本人Python能力有限,故用C#来编写WinForm可视化界面。
可视化界面如下:
该类下RunCmd方法实现了调用CMD命令窗口
public class CmdHelper { private static string CmdPath = @"C:\Windows\System32\cmd.exe"; /// <summary> /// 执行cmd命令 /// 多命令请使用批处理命令连接符: /// <![CDATA[ /// &:同时执行两个命令 /// |:将上一个命令的输出,作为下一个命令的输入 /// &&:当&&前的命令成功时,才执行&&后的命令 /// ||:当||前的命令失败时,才执行||后的命令]]> /// 其他请百度 /// </summary> /// <param name="cmd"></param>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。