19年年初的時候,進到一家新單位,公司正準備將現有的遊戲作成支持熱更的版本。因而尋找熱更方案的任務就落在了我頭上。html
通過搜索瞭解,能作Unity熱更的方案是有好幾種,可是要麼不夠成熟,要麼不支持iOS平臺,相對來講,仍是用Lua來實現比較靠譜。android
而Lua的熱更方案也有好幾種:xLua、toLua和sLua。ios
其中xLua擅長打補丁,sLua難以理解,而toLua由於有着LuaFramework的存在,入門門檻低,所以我就選擇了toLua(LuaFramework)。git
因爲對Lua語言不太熟悉,又對熱更沒啥概念,tolua也沒啥文檔,說是門檻低,但對當時的我說來,想入門仍是很困難的。github
邊學邊作,差很少花了一個月的時間才理順了框架。c#
在這個過程當中,我花了不少時間在網上搜索相關資料,可是找到的有用的資料甚少,大部分都是淺嘗輒止的學習教程,深刻使用的和剖析的極少。服務器
沒有人能告訴你哪裏該怎麼作,下一步應該作什麼。網絡
有感於此,在我入門的三個月後,決定將個人LuaFramework學習之路記錄下來,一是爲了鍛鍊一下本身的表達能力,二是但願個人學習經歷能對後來人有所幫助。所以纔有了這一系列文章。框架
本系列文章重在操做,而少講原理。一是我本身也只勉強學會了使用,對原理理解並不透徹,怕誤導他人;二是以爲先用起來,而後再回頭去理解原理是一種更適合的方式。ide
文章內容有點淺,可是一個完整的lua熱更遊戲開發過程應該使用到的東西都有涉及,但願對你有所幫助。
由於我本人也是初學者,文章內容不免有錯誤和疏漏,歡迎指正。
爲方便綜合學習,現將這一系列文章的連接都列在此處:
Unity3D熱更新之LuaFramework篇[01]--從零開始
Unity3D熱更新之LuaFramework篇[02]--用Lua建立本身的面板
Unity3D熱更新之LuaFramework篇[03]--prefab加載和Button事件
Unity3D熱更新之LuaFramework篇[04]--自定義UI監聽方法
Unity3D熱更新之LuaFramework篇[05]--Lua腳本調用c#以及如何在Lua中使用Dotween
Unity3D熱更新之LuaFramework篇[06]--Lua中是怎麼實現腳本生命週期的
Unity3D熱更新之LuaFramework篇[07]--怎麼讓unity對象綁定Lua腳本
Unity3D熱更新之LuaFramework篇[08]--熱更新原理及熱更服務器搭建
Unity3D熱更新之LuaFramework篇[09]--資源熱更新與代碼熱更新的具體實現
Unity3D熱更新之LuaFramework篇[10]--總結篇
文章使用的項目也已經上傳到Github,地址:https://github.com/tanyuqing/LuaFramework-in-action
項目所使用的Unity版本爲5.5.5f1,其它版本未驗證。
背景裏我雖然吐嘈關於LuaFramework有用的資料太少,可是仍是有的。
我能學會這個框架的使用,羅培羽 大佬 寫的一系列關於LuaFramework的文章,對我起了極大做用。這些文章對LuaFramework框架的各類概念有詳盡的解釋,價值很高。
現將相關文章連接收錄在此,以供參閱。
Unity3D熱更新LuaFramework入門實戰(1)——代碼熱更新
Unity3D熱更新LuaFramework入門實戰(2)——資源熱更新
Unity3D熱更新LuaFramework入門實戰(3)——編寫Lua邏輯
Unity3D熱更新LuaFramework入門實戰(4)——Lua組件
Unity3D熱更新LuaFramework入門實戰(5)——UI
Unity3D熱更新LuaFramework入門實戰(6)——網絡
Unity3D熱更新LuaFramework入門實戰(7)——PureMVC
Unity3D熱更新LuaFramework入門實戰(8)——聲音管理器
Unity3D熱更新LuaFramework入門實戰(9)——線程管理器
Unity3D熱更新LuaFramework入門實戰(10)——示例程序
羅大這一系列算得上是LuaFramework的高階使用教程了,我寫的那些只能算是初階入門指南,不過個人目的就在於此,畢竟要先入門才能往高處走。
ILRuntime
這是我最近才瞭解到的一個用c#進行熱更的框架,引用網上的一段評價來講明此框架。
ILRuntime是掌趣科技開源的unity熱更框架, 這個框架打破了C#不能作ios平臺熱更的規則,在ios平臺中是以ILRuntime + DLL 的方式解釋執行,固然是在IL2CPP下。
有了這個框架,開發者只需使用C#這一種語言便可,而不用在C#和lua之間切換,但這個框架也是有不少坑的,在一些方面性能是不如lua的,Git上的貢獻者也不多,暫時沒有通過大量項目的考驗,用的人仍是比較少的。但願這個框架可以成熟,畢竟不用定lua代碼,能省好多事。
相關連接:http://ourpalm.github.io/ILRuntime/public/v1/guide/index.html
在我這一系列每篇文章的最後,老是少不了一我的的身影。感謝 馬三小夥兒 大佬的解惑和長期以來的支持。
馬三小夥兒 也是園子裏的一們unity大牛,精通unity、android開發,熟悉網絡原理,且還有本身的unity開發框架 ColaFrameWork 。
是我學習路上的榜樣, 感謝!
這一系列文章到這裏應該就結束了,沒講的東西還有很多,但若是每一篇你都跟着作了,如今應該也基本通透了,其它的都是細枝末節,本身摸索摸索也應差很少了。
若是關於這一系列文章你有啥疑問,能夠直接評論或給我發郵件聯繫我。
QQ郵箱:594006414@qq.com
---------2019-07-30 01:27---------