Unity的batchmode和.bat实现多平台自动化编译打包游戏

本文介绍了一种使用Unity的batchmode功能和批处理脚本来自动完成游戏项目跨平台编译和打包的方法,通过编写AutoBuildProcessor类和CommandLineParser类,实现了从命令行参数读取到Unity编译命令执行的全过程自动化。

最近一个已上线项目需要开发新的东西,并且它是在多个平台上线的。那么在日常的迭代开发过程中,设计和测试定时的需要一个当前最新的版本来查看游戏目前的一个开发状态,如果他们每个人都跑来找程序手动的打新版本,那么程序一天啥也不干就光给设计和测试打版本了。。。
于是我就写了一个.bat批处理利用Unity的batchmode来实现每天定时打版本。废话不多说,直接上代码。

bat批处理脚本:

@echo off
cd>nul
REM GET THE COMMAND LINE ARGS
SET PLATFORM=%1
REM PLATFORM possible options are: Standalone, Win, Win64, OSXUniversal, Linux64, iOS, Android, WebGL, XboxOne, PS4, WindowsStoreApps, Switch, tvOS.
SET CONFIG=%2
SET OUTPUT=%3
SET PACKAGE=%4
SET BUILDNO=%5

SET UNITY_INSTALL_ROOT_KEY="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Unity"
SET UNITY_ICON_KEY="DisplayIcon"

FOR /F "skip=2 tokens=1,2*" %%A IN ('REG QUERY "%UNITY_INSTALL_ROOT_KEY%" /v "%UNITY_ICON_KEY%" 2^>nul') DO (
    SET ValueName=%%A
    SET ValueType=%%B
    SET ValueValue=%%C
)
if defined ValueValue (
    ECHO Unity installation detected!  
    ECHO %ValueValue%
) else (
    ECHO "%KEY_NAME%"\"%VALUE_NAME%" not be found.
    EXIT
)

PUSHD %~dp0
SET UNITY=%ValueValue%
SET LOGFILE=%CD%\build_%PLATFORM%_%CONFIG%.log
IF NOT EXIST %OUTPUT% MKDIR %OUTPUT%
ECHO Build Command:
SET BUILDCMD="%UNITY%" -buildTarget "%PLATFORM%" -batchmode -quit -projectPath %CD% -logFile "%LOGFILE%" -executeMethod AutoBuildProcessor.Build 
ECHO %BUILDCMD%
%BUILDCMD% -buildArgs:"platform=%PLATFORM%;config=%CONFIG%;output=%OUTPUT%;ispackage=%PACKAGE%;buildno=%BUILDNO%;scenes=MyScreen1&MyScreen2"
SET SHOWLOG=TYPE %LOGFILE%
%SHOWLOG%

POPD

@echo on
exit %ErrorLevel%

上面.bat批处理脚本完成了:

  1. 读取执行.bat脚本时传入的参数;
  2. 检查当前环境下是否安装有对应版本的Unity;
  3. 创建编译时输出的log文件;
  4. 执行Unity的batchmode下的相关命令;
  5. 最后执行项目工程里类AutoBuildProcessor的static函数Build完成编译打包。

AutoBuildProcessor.cs代码:

public class AutoBuildProcessor
{
   
   
	public static void Build()
    {
   
   
        string buildPlatform = CommandLineParser.GetCustomArgument("platform");
        string buildConfig = CommandLineParser.GetCustomArgument
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值