1. 程式人生 > >熱更新技術第一講

熱更新技術第一講

什麼是熱更新?

熱更新可以在不重新下載客戶端的情況下,更新遊戲的內容。 並且熱更新一般應用在手機網遊上。

為什麼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