[Unity熱更新]tolua# & LuaFramework(十一):實踐

[Unity熱更新]tolua# & LuaFramework(十一):實踐

Unity版本:5.3.2

LuaFramework版本:2016-07-16

1.下載NGUI版本的LuaFramework,並將其合併到新的unity工程中,匯入工具包到工程中。按照http://blog.csdn.net/lyh916/article/details/51015156所說的,修改一下原始碼。

2.資源的準備。如圖,將工具包的Resources下的預製物拖到指定位置。

3.資源的打包。點選選單欄”LuaFramework/AddBuildMap”,選中First、Main、Second、Third和Shared這幾個資料夾,點選”自動填寫”,”儲存”,“儲存”。此時會在Assets下生成一個AssetBundleInfo的csv檔案。需要對Shared檔案進行打包(ResourceManager類中initialize方法的需要),要把Shared/Atlas下的東西拖到Shared下。然後點選選單欄”LuaFramework/Build Window Resource”進行打包。

4.生成lua模板。點選選單欄”LuaFramework/AutoRegister”,然後按照http://blog.csdn.net/lyh916/article/details/51345461填寫並生成模板。完成後,三個lua檔案(define.lua、CtrlManager.lua和Game.lua)會被修改,並且針對每一個面板,會生成一個對應的xxxPanel和xxxCtrl。找到define.lua,在Message = “MessageCtrl”這行的末尾加上逗號。找到MainCtrl.lua,修改為panelMgr:CreatePanel(‘Main’,
MainCtrl.OnCreate);。找到UIPanelBase.lua,拖到Logic資料夾下。再次Build。

5.此時如無意外就會看到新的介面。關於遊戲啟動流程,可以看一下http://blog.csdn.net/lyh916/article/details/45021703。此時還沒有具體的邏輯,所以用工具包的Concrete下的幾個lua檔案替換即可。將一些需要用到的類生成wrap檔案。重新打包。如果Panel是播放縮放0到1的動畫出現的,則需要給預製物設定縮放0;如果Panel是播放從螢幕外移動到螢幕內的動畫出現的,則需要給預製物設定在螢幕外;等等。否則當載入出完整的介面,然後播放動畫,就會出現閃現的效果。不過呢,LuaFramework為了例項化的位置和縮放正確,在PanelManager.cs中對建立出來的Panel的位置和縮放進行了重置。因此建議對Panel預製進行隱藏。

工程下載:

http://pan.baidu.com/s/1mhCCABu