unity3d的資源管理和熱更新方案

    之前開發一直使用cocos2dx,最近開始搭建unity3d的框架,遇到的一個大問題就是熱更新。雖然代碼採用了slua腳本,unity3d官方也提供了assetbundle這樣的解決方案,但是還是有好多的問題需要解決。

    1.複雜的資源引用方案。cococ2dx的更新方案很簡單——添加附加searchpath,這樣只要設置更新文件所在的路徑,就能保證優先使用最新資源。但是unity3d並不是這樣,因爲它沒有cocos2dx的FileUtils,沒辦法控制所有資源的加載。unity3d的資源來源有這麼三個路徑,unity自動打包、Resources/StreamingAssets、assetbundle。第一種是一種靜態的資源索引,編輯器怎麼設置那就怎麼獲取資源,打包時打入包中。第二種是動態資源加載,但是資源也是打包時打入包中的,沒法進行更新。第三種可以將資源打包,讓我們進行資源管理,是可選的熱更新方案。

    2.資源加載方案。在遊戲包中,我們使用的是靜態關聯,比如啓動了場景SceneLoad,那麼用到的資源都是原生打入包中的,那AssetBundle被下載之後,我們要如何才能加載呢?答案是下一個場景動態加載,而不是寫死在代碼中。這樣的話,我們就能通過一個資源配置文件resourceInfo來控制加載的資源和場景的信息了——到底是用哪個assetbundle或者是resources中的資源。

    3.assetbundle的粒度應該是如何的?如果每個文件都生成一個ab,那效率太低,但是如果全部資源做成一個ab,下載資源量可能過大,對模塊的劃分和資源管理也不好。比較好的做法事,通過功能或者模塊來劃分,比如UI、模型、通用資源等。


    參考:http://www.cnblogs.com/lancidie/p/5878792.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章