Unity ios、android、pc一鍵打包
1 android平台
unity是直接打出apk,因此不需要有ios這么多繁瑣的操作,均在windows平台使用.bat命令進行一鍵打包即可,android平台由於我們會做一些代碼的熱更操作,需要把Assets目錄下的Resource(大部分),scripts進行剝離,因此我們要建立導出兩個工程。
1.1、 pack文件夾
大致格式如下 :
andorid:你的unity工程
.bat: 均是調用Unity或者VS命令的.bat代碼,一般Unity涉及到包資源,打熱更包等等均可放在這里。
PackDLL.bat :這是把你script里面的代碼打包成Assembly_CSharp.dll相當於平時Rebuild解決方案,這是android代碼做熱更用的,一下是一些簡單的打包DLL代碼
set localPath=%cd%
:找到注冊表的位置
for /f "delims=" %%i in{'REG.EXE QUERY "HKEY_CLASSES_ROOT\com.unity3d.kharma\DefaultIcon" /V3'} do set InstalllDir="%%i"
set InstalllDir =%InstalllDir:~22,-11%
echo Unity3d 安裝目錄:: %InstalllDir%
::unity里面的一些宏定義沒寫全,讀者可根據自己實際需求添加相應的宏
set defStr= "UNITY_4_6_4;UNITY_4_6;UNITY_64;UNITY_STANDALONE"
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSbuild.exe" %~dp0./android/pc/UnityVS.pc.sln /m /t: Rebuild /P:Configuration=Debug /p:DefineConstant=%defStr%
::調用Unity Editor里面Command靜態方法
cd /d %InstalllDir%
Unity.exe -batchmode -projectPath %~dp0./android -executeMethod Command.PackDLL -quit
::svn命令
cd /d %InstalllDir%
TortoiseProc.exe /command:commit /path: "./android/Assets" /close
原理:均是通過.bat命令調用Unity里面的函數,以下就是調用Unity Command.PackDLL方法
Unity.exe -batchmode -projectPath %~dp0./android -executeMethod Command.PackDLL -quit
1.2、x1_publish文件夾
1 android文件夾
工程需要把打包不需要的資源刪除掉,比如我們已經把script打包剝離掉,因此我們的script文件夾,還有Resources資源,保留下我們需要的一些version.cfg文件,Assets下的UnityVS也盡量刪除掉,要不打出來的apk里面會編譯有Assembly-CSharp.dll,游戲會優先加載這個dll就不會加載我們自身打包的dll.
2 .bat 文件
一般只會寫一些打整包的.bat文件
2. Unity的打包事項
2.1 多平台:由於代碼存在多個平台的配置,sdk等等,又分測試包和正式包,內容繁多,打包的時候需要注意,主要是幾個方面的東西
Android sdk 和 Assets/Resources/cfg 文件,因此我們在工程目錄下建立SDKs文件夾,與Assets在同一目錄下。打整包的時候就可
利用.bat命令把相應平台的SDK拷入工程。
相應平台SDKS 可建立相應的文件夾比如UC:
2.2 具體的.bat文件可自己隨意操作,這里只是簡單的做一下通過.bat文件調用unity的方法,下次會講到unity里面具體的
熱更和依賴打包資源以及ios相應的打包方式。