unity+slua熱更流程演示
本文是採用lua + assetBundle 作為熱更資源。如果你不瞭解Slua 可以點這裡 。assetBundle具體怎麼用可以百度。
unity的熱更流程,其實就是把所有的資源打包成 assetBundle ,包括場景也是。然後把這個assetBundle 下載到Application.persistentDataPath這個目錄,然後用www來動態載入新內容。Application.persistentDataPath這個目錄是針對平臺的可讀寫目錄,適用於熱更。下面是具體的操作流程演示。
1.unity熱更主要兩部分,程式碼和資源。
①製作需要熱更的場景,隨便拖幾個東西。改個名字叫 myScene.scene
②製作入口場景,其實就是新建空場景,然後拖個按鈕過來,上面綁兩個指令碼。Demo.cs 和 ResUpdate.cs
這個入口場景改名叫 begin.scene
2.製作需要熱更的資源
這裡資源包括lua程式碼還有一些prefabs
--main.txt
function main()
print("hello world")
end
--newLua.txt
function sayHello()
print("來自熱更的lua列印");
end
sayHello();
這個newLua.txt就是後面將要熱更的新程式碼
3.打包要熱更的資源
*如果是第一次使用sLua 那麼要先點Slua選單clean後make
我們這次熱更不需要用到cdn,本地環境就可以測試了。首先在桌面建立tmp目錄,當作是伺服器cdn。//如C:\Users\Administrator\Desktop\tmp
然後用熱更打包的選單去打包資源和場景。
①資源:多選選中你需要打包的prefabs+程式碼.txt ,點選打包資源,並儲存到上面的tmp目錄。(實際開發應該遠端服務端cdn)
②場景:開啟你需要熱更的場景,點選打包場景,並儲存到上面的tmp目錄。
③建立版本檔案:點選就行了。因為我在程式碼裡面寫死了C:\Users\Administrator\Desktop\tmp 這個目錄。(實際開發是一個http的url)
4.執行
上面的準備工作已經完成,可以執行begin場景。點選一下啟動熱更的按鈕即可。
5.其他
熱更時候下載的ab到底去哪了?去了Application.persistentDataPath 這個目錄。
C:\Users\Administrator\AppData\LocalLow\DefaultCompany\專案名字
ResUpdate.cs這個檔案,由於我是演示,我寫死了本地路徑和遠端路徑,如果你不想在桌面建一個tmp目錄那麼你要手動改下。
6.演示程式碼下載
7.交流
QQ342854406 Q群261286285 Q群347085657