1. 程式人生 > >[Unity熱更新]tolua# & LuaFramework(十三):匯出apk

[Unity熱更新]tolua# & LuaFramework(十三):匯出apk

其實匯出apk的步驟很簡單,就是:

1.設定AppConst.LuaBundleMode為true。這樣就會將lua程式碼打包成.unity3d

2.點選選單欄LuaFramework/Build Android Resource。這裡注意的是,在Build的時候,StreamingAssets資料夾的東西會先被清空,所以注意好備份

有可能會提示Found plugins with same names and architectures的錯誤,解決方法就是:

如果是32位Unity編輯器,刪掉x86_64目錄,如果是64位編輯,刪除x86目錄即可。

順便也整理一下相關的知識:

一.打包流程

要打包的就是各種素材以及lua程式碼。找到Packager.cs的BuildAssetResource方法,開始分析。

1.素材的打包

如果AppConst.ExampleMode為true,那麼就會對"Assets/LuaFramework/Examples/Builds/"這個路徑下的素材進行打包,打包到StreamingAssets這個目錄下。這裡我建議不要修改這個值(保持為true),通過系列二的打包工具將素材的路徑改了就可以了。

2.lua程式碼的打包

如果AppConst.LuaBundleMode為true,那麼就會對"LuaFramework/lua/"和"LuaFramework/Tolua/Lua/"這兩個路徑下的lua程式碼進行打包,打包到StreamingAssets/lua/這個目錄下;否則,就是將這兩個路徑的檔案複製到目標目錄下。如果要匯出apk,那麼要將這個值改為true;如果只是在編輯器上測試,可以改為false。

二.AppConst.cs

這個類中的常量十分重要,有必要分析一下。

1.DebugMode

對於LuaManager來說,如果值為true,那麼lua程式碼的載入路徑就為"LuaFramework/lua/"和"LuaFramework/Tolua/Lua/"這兩個路徑(也就是pc上的本地路徑),否則為Util.DataPath + "lua"(也就是爪機上的沙盒路徑)

2.ExampleMode

上面已經說了

3.UpdateMode

如果為true,則會訪問服務端進行下載更新

4.LuaBundleMode

上面已經說了

三.獲取android程式的輸出

眾所周知,在unity編輯器下可以很方便地看到輸出資訊,但是生成apk後卻看不到。其實可以使用一些特殊手段看到的~~

在android的sdk目錄下找到tools/monitor.bat,開啟,並設定過濾,然後開啟app即可。


四.android程式區域網連線

找到Game.lua,在OnInitOK方法中即可設定地址和埠號。要注意的是如果只是編輯器和exe程式進行連線,那麼就無需修改了,如果是app連線,要改一下地址。

在控制面板---網路和Internet---網路和共享中心,點選本地連線---詳細資訊,其中IPv4地址即為要填寫的IP地址。