Unity到使用bat跨平台编译打包--unity batchmode 模式(二)

上篇介绍一下基本要用到的命令,要想深入学的,可以去看一下bat基本语法,基本使用batch模式打包就用到的就这一些。

一、启动Unity Batchmode,并执行一个函数

@echo off
pushd %~dp0
echo "---------------update proj.......------------------"
"C:\Program Files\Unity2017.4.24f1\Editor\Unity.exe" -quit -batchmode ^
-projectPath "%~dp0../../../" ^
-executeMethod AbTools.SyncProjFromRemote ^
-lrd %lrd% ^
-rrd %rrd% ^
-logFile build_update_proj.log
if errorlevel 1 goto _err
goto _continue
:_err
echo "unity error"
type build.log
popd
pause
exit
:_continue
popd

直接上源码,在来分析。

给定了一个Unity的安装路径"C:\Program Files\Unity2017.4.24f1\Editor\Unity.exe",执行了-quit退出并以batchmode启动,

-projectPath:

后面放的是需要启动的Unity工程的目录

-executeMethod:

启动后会执行的函数,AbTools.SyncProjFromRemote注意这是写在Unity的里的C#脚本,而且是静态方法

-lrd %lrd% :

这个涉及到进程通讯了,通俗的讲,lrd是在bat设定的一个自定义变量,要把这个变量传到Unity的脚本中使用怎么做?

将lrd加入命令行,在C#中使用c#Environment.GetCommandLineArgs来获取这个参数的值。

这里做的操作是,将lrd和rrd通过bat赋值后,在写入命令行,通过c#Environment.GetCommandLineArgs获取命令行参数列表,在从中读取key,在C#中调用lrd和rrd参数。

-logFile:

输出一个日志文件,名字为build_update_proj.log,在当前路径下

-------------------------------------------------------------------------------------------------------------

二、多函数切换调用

知道了上面这些就能做很多事情了,在bat让用户输出一些自定义信息,然后传入到Unity里进行参数配置,就可以做一下打包相关的操作了 

上面只是运行了一个函数,如果我们写了很多个函数,比如有拷贝的、有打AB的,还有删除某些配置的很多函数呢

比如AbTools脚本里有个BuildAB的静态方法,在执行完上面AbTools.SyncProjFromRemote的方法后,如何在单独去调用这个BuildAB呢,(你也可以在C#里面直接调用,但有的时候,在某个步骤出错后,不需要从头开始执行,而直接从出错的步骤继续执行,所以我们会把功能完全独立开来,以便于功能方法能单独调用 )

调用其实还是很上面一样,重复一样的代码只需要替换掉方法名称即可,因为执行了quit后,会退出Unity程序,但再次启动重新执行方法。比如这样

"C:\Program Files\Unity2017.4.24f1\Editor\Unity.exe" -quit -batchmode ^
-projectPath "%~dp0../../../" ^
-executeMethod AbTools.BuildAB^
-lrd %lrd% ^
-rrd %rrd% ^
-logFile BuildAB.log

跟上面一样,改了一个方法名和一个输出的日志名,因为我们把日志分开存储,便于定位问题在哪一步

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值