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

感觉做Unity学的东西挺多,入门学编程时学的C++,然后入游戏业学C#,后面做热更新学了lua,搞跨平台还要学oc,java,最近入手的一个MMORPG项目,跨平台编译、打包,全部使用的Bat处理,以前都是使用Unity引擎上自带的Build输出或者写一个脚本调用Build输出。

使用Bat编译、打包的好处:同时开启多个版本,同时进行,Unity只启动进程,并不会启动客户端,可同步进行资源拷贝、传输、删除等操作,打包步骤较少,只需要输入自定义命令即可。

 

先学习一下必要命令

echo xxx:显示输出,用来打印,相当于print。试试 echo hello world

echo %xxx%:显示一个变量的值

echo off:关闭命令显示,执行的命令不显示在窗口中。

echo on:打开命令显示,执行的命令显示在窗口中。

 

set:用于定义变量,如set platform = a,则是定义了一个变量platform,这里貌似没有数据类型约束。

 

set/p:用于提示用户输入定义一个变量,并将用户输入的值,赋值给这个变量,如:

set/p platform = platform(android,ios,pc):

后面的platform(android,ios,pc):将会显示在界面用于提示,当用户根据显示提示输入值后,回车则会保存该变量,输入android,则platform的值为android。

 

pushd %~dp0:把批处理所在的路径设为当前路径, %~dp0为当前执行的bat文件所在的文件路径,pushd则是切换到该目录

 

if "%platform%" == "1"(

    set resurl_1=http:/xxx:8888/magres/%resdir%
    set ncfurl_1=http://xxx:9992
    set resurl_3=http://xxx:8888/magres/%resdir%
    set ncfurl_3=http://xxx:9992

)

if:流程控制语句,用于判定一个条件,并设定了一些变量。(两个%号用于取这个变量的值%platform%,双边加了"",理解为转成了字符串)

goto xxx:流程跳转,当执行到这里时,将会跳转到xxx标签处,可以用于出错时结束批处理。

xxx:跳转标签

pause:暂停批处理

exit:退出批处理

del :xx\xx\xx.txt 或xx\xx:删除文件或文件夹

call:命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理。如:call android.build.bat,则是进入android.build.bat这个批处理中执行逻辑,一般每个平台的批处理文件不一样,可使用多个bat文件划分功能。

^:将一行代码分成2行来写,有的时候一行代码包含命令太多,会造成可读性很差,需要分开写。

如:echo this is first ^
line

运行结果为:
this is first line .

 

你可能感兴趣的:(项目经验)