Unity 命令列打包

2021-08-28 10:20:27 字數 1707 閱讀 8897

在寫文章之前先說下unity已經自帶了視覺化打包,我為什麼要多此一舉進行命令列打包,估計剛接觸unity的小夥伴都會有這樣的疑惑,當你遊戲要發布到android平台你就會知道,需要接不通平台的sdk,甚至有些平台還需要改包名。而遊戲從接完平台sdk,到發布還需要經過無數次的測試,發布後甚至還需若干次公升級。你要是每次都手動的將每個平台jar、res等,拷貝到unity plugins檔案下,然後再去改包名,暫且不說這樣多次操作是多麼的麻煩無聊,關鍵是你要是哪天不小心手殘了,把什麼拷貝錯了或者包名寫錯了忘記改了等等,還特麼的要重來,你能受得了嘛,好了,我覺得我受不了,那麼來吧,寫個打包工具吧。

首先在unity的assets檔案下建立editor資料夾,我們把工具指令碼寫在此處,寫在此處的目的是想在unity選單欄上,建立打包按鍵。這個大家應該都知道吧。我們寫個靜態方法叫buildqq吧,然後在方法上設定選單[menuitem("hugebuild/qq")],好吧,請原諒我的自戀,居然自稱虎哥。效果出來了,截圖作為真相。(注:使用標頭檔案using unityeditor;)

那麼下面我們就該在buildqq方法中先去執行檔案拷貝了,我們先把不同平台的jar、res、androidmanifest.xml,放在assets/android/qq(360、xiaomi)等。當我打包qq的時候,我們先把asssets/plugins/android目錄下的檔案刪除,然後將assets/android/qq檔案拷貝到asssets/plugins/android下。具體c#檔案操作我就不多說了,太簡單了,網上一搜到處都是。

等待拷貝完成後,該去解析androidmanifest.xml中包名了,因為不同平台包名要求會不同。把獲取到的包名賦值給playersettings.bundleidentifier。具體方法我在這裡說下吧!**如下:

using system.xml;

static string getpackage()

搞定後,設定keystore賬號和密碼。

playersettings.android.keystorename = "assets/xiaohu.keystore";

playersettings.android.keystorepass = "******";

playersettings.android.keyaliasname = "huge";

playersettings.android.keyaliaspass = "******";

最後呼叫:打包函式 buildpipeline.buildplayer(lsit.toarray(), "sample.apk", buildtarget.android, buildoptions.none);等待完成,但是這裡面引數要說明下,第一引數是要打包的場景,第二是打出包的路徑和名稱,第三是編譯的平台,第四是編譯的選項,一般選擇node,即可,具體引數詳解到官網檢視api。下面提供一種方法去獲取所有需要打包的場景名稱。

listlsit = new list();

foreach (editorbuildsettingsscene scene in editorbuildsettings.scenes)

}

大功告成!

程式設計師事半功倍工具

Unity命令列打包

補充unity編輯器端獲取打包命令列自定義引數,這個可以獲取到所有打包時的引數 string runargs system.environment.getcommandlineargs 一 在assets editor目錄下放個指令碼 using unityengine using unityedi...

命令列下檔案打包

windows rar 1 打包桌面所有檔案 rar.exe a k r s m3 d 1.rar c users bezal desktop 2 只打包指定字尾檔案 只打包doc字尾檔案 n doc rar.exe a k r s m3 tk n doc d 4.rar c users bezal...

命令列打包以及jenkins使用

首先命令列打包我用的是xcodebuild以及xcrun兩個工具。相當簡單 打包命令 xcodebuild target 工程名字 configuration release clean build 首先clean以及編譯工程 jenkins的使用 啟動tomcat下的jenkins 進入路徑 us...