因工做關係,須要對手頭的項目進行熱更新支持。瞭解後發現,Lua的幾個變種:XLua、ToLua(原uLua)和Slua均可以作Unity熱更,而ToLua更是提供了一個簡易的熱更框架--LuaFramework_UGUI,使得上手變得容易,所以選定LuaFramework_UGUI框架來實現項目的熱更功能。html
固然,容易是相對的,對一個小白來講要弄懂這一套流程和概念並不簡單。網上相關資料很多,但大可能是零散而雷同的,很難讓一個此前對熱更缺乏認知的人快速上手。所以我將本身的爬坑經歷整理成文,但願能對正焦頭爛額,不知道如何下手的你提供一點幫助。git
1.進入ToLua的官網:http://www.ulua.org/index.html(ToLua是uLua的升級版,不要問爲何是ulua.org)github
2.點擊LuaFramework_UGUI的地址,打開框架在github上的位置:https://github.com/jarjin/LuaFramework_UGUI,見圖1-1c#
(若是你是NGUI用戶,也能夠選擇NGUI對應的框架)服務器
圖1-1框架
3.點擊「Clone or download」按鈕,以zip形式下載最新的框架代碼,爲方便追溯,這裏我將這個壓縮包重命名爲「LuaFramework_UGUI-master-20190327.zip」。測試
解壓剛剛下載好的壓縮包,發現裏面是一個Unity工程(如圖2-1),因而用 unity打開此工程。lua
圖2-1spa
我使用的Unity版本爲5.5.5f1,會提示須要升級,是否備份,點「Go Head」就行。而後會彈出「自動生成」對話框(見圖2-2),點肯定。
圖2-2
打開工程後,找到Main場景,直接運行,會報錯「沒有找到框架所須要的資源,單擊Game菜單下Build xxx Resource生成」,見圖2-3:
圖2-3
根據提示,找到LuaFramework菜單下的Build xxx Resource項(並不是提示的Game菜單)。因工程打開默認爲Windows平臺,因此選擇「Build Windows Resources」菜單。
圖2-4
等待操做完成後,控制檯會打印許多警告,不用理會,直接再次運行,出現如圖2-5所示界面。框架以Lua代碼的形式動態的建立了一個界面,看到此界面表示運行LuaFramework_UGUI框架成功,也代表這個框架運行良好。
(界面右下角的Button按鈕是測試與服務器的通信功能,此處暫不細述。)
圖2-5
本篇至此結束,下一篇我將會梳理此框架中用Lua建立一個面板的基本流程。
問:ToLua、XLua以及SLua,它們之間是什麼關係?
答:我的理解,Lua定義了一種語言規範,而ToLua、Xlua、Slua都是這種規範的一種實現。
問:Unity、ToLua、LuaFramework_UGUI,它們之間有什麼聯繫?
答:ToLua搭建了一個Lua語言與Unity中c#語言溝通的橋樑,藉助ToLua,你能夠在C#語言中調用Lua方法,也能夠在Lua語言中調用C#方法。
而LuaFramework_UGUI則是基於ToLua的這種能力實現的一個熱更新方案(提供包括資源包管理、下載、加載等一系列功能)。
以個答案均爲我的理解,若有不對,敬請指出。