在問問題之前,我會解釋我需要什麼類型的需求。 在我的遊戲中,爲了玩它需要很多紋理。由於這個和ipa大小(iOS)的限制,我認爲使用assetbundle是必須的。由於現有的代碼實現,我爲1個圖像創建了資產捆綁,1個資產捆綁。例如:我有100個圖像,然後我將創建100個assetbundle(主要的屬性將是紋理),並且具有相同的名稱。哪種方式更好地處理AssetBundle下載管理
我希望我的遊戲可以離線播放AFTER用戶首次下載了所有需要的資產捆綁。因此,如果用戶第一次玩遊戲或下載我的遊戲的更新版本,遊戲將被強制進入特殊場景,在那裏它將下載所有需要的資產捆綁,之後,用戶可以在沒有互聯網連接的情況下玩遊戲。
我想有2種關於如何下載這些assetbundle方式:
的正常方式:我把我的服務器上的所有100個assetbundles,並把1個XML文件,其中包括所有assetbundles信息及其版本。在特殊場景下,遊戲將下載xml文件,並通過
WWW.LoadFromCacheOrDownload
下載100個資產捆綁。目的只是將所需的資產捆綁存儲到遊戲緩存中。成功下載後,用戶可以離線播放,如果遊戲需要加載資產捆綁,那麼我只需要打折WWW.LoadFromCacheOrDownload
,因爲它仍然在緩存中,可以離線播放。當然,只要我沒有明確地清除緩存,我認爲緩存仍然存在。困難的方法:我會將所有100個assetbundle壓縮到1個zip文件。遊戲將下載xml文件和zip文件。我將解壓zip,並將所有100個assetbundle放入移動存儲(iOS和Android)。那麼在這之後,如果遊戲需要加載資源,我只需撥打
WWW.LoadFromCacheOrDownload
,URL是使用file:///
方案指向移動存儲的路徑。
摘要:
正常方式:
減:我認爲緩存仍然存在,但如果有什麼不對在緩存中,用戶不能玩遊戲。
加:簡單的實現,因爲假設緩存會很好。
困難的方法:
減:嗯,我不知道它是零下點或不是,但是這一次,我要實現未存檔的壓縮文件,將它們存儲在存儲。在服務器端和應用端需要更多的實現。由於我是新手,我不知道這方面的最佳做法。
再加上:更堅固
那麼哪一個更好?還是有更好的建議?
是的,我認爲你對「將它們打包成一個zip」是正確的。謝謝你的回答,它真的幫助我:D –