熱更新技術第一講
阿新 • • 發佈:2019-01-01
什麼是熱更新?
熱更新可以在不重新下載客戶端的情況下,更新遊戲的內容。 並且熱更新一般應用在手機網遊上。
為什麼C#指令碼不可以直接更新?
因為C#是一門程式語言,在執行之前需要進行編譯,而這個編譯過程無法再移動平臺完成,所以在我們的遊戲邏輯改變的時候,C#程式碼發生改變的時候,我們就得重新在開發環境下編譯,然後重新打包,最後讓玩家重新下載最新版本。
從上面的話中大家可以看出,這樣對玩家來說,體驗是相當差的,浪費時間和流量。
熱更新有哪些實現方式?
1.使用Lua指令碼編寫遊戲的UI或者其他邏輯 (Lua是一個精悍小巧的指令碼語言,可以跨平臺執行解析,而且不需要編譯過程)
2.使用C#Light
3.使用C#反射技術
關於AssetBundle
Unity提供了一種資源更新技術,就是通過AssetBundle,我們可以通過AssetBundle更新遊戲UI,也可以把指令碼或者其他程式碼當成資源打包成AssetBundle然後更新到客戶端,PS: 在所有的熱更新技術中都需要AssetBundle!
如何利用Lua進行熱更新
在移動端可以編寫Lua的解析器,通過這個解析器,可以執行最新的Lua指令碼,然後我們把控制遊戲邏輯的程式碼都寫成Lua指令碼。Lua的解析
1.uLua 2.NLua 3.UniLua 4.sLua