1. 程式人生 > >unity+slua熱更流程演示

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