【Unity3D技術文檔翻譯】第1.7篇 AssetBundles 補丁更新

Unity3D技術文檔翻譯

上一章:【Unity3D技術文檔翻譯】第1.6篇 使用 AssetBundle Manager緩存

本章原文所在章節:【Unity Manual】→【Working in Unity】→【Advanced Development】→【AssetBundles】→【Patching with AssetBundles】服務器

AssetBundles 補丁更新

AssetBundles 補丁更新很簡單,就是下載一個新的 AssetBundle 並替換已有的。若是使用的是 WWW.LoadFromCacheOrDownload 或者 UnityWebRequest 來管理應用緩存的 AssetBundles,傳入一個不一樣的版本參數就會觸發下載新的 AssetBundles。翻譯

檢測哪些 AssetBundles 要被替換是補丁更新系統中的難題。一個補丁更新系統須要兩個信息列表:blog

  • 一個當前已經下載好的 AssetBundles 及其版本信息的列表排序

  • 一個服務器上的 AssetBundles 及其版本信息的列表開發

補丁更新程序應該下載服務端的 AssetBundles 列表,並與本地 AssetBundles 列表比較。丟失的 AssetBundles,或者是版本信息不一樣的 AssetBundles 應該被從新下載。文檔

寫一個定製的系統來檢測 AssetBundles 的變化是可能的。大多數開發者使用一個工業級標準的數據格式(好比 JSON),來爲他們的 AssetBundles 文件列表編寫本身的定製系統。而且還須要一個 C# 腳原本計算校驗碼(好比 MD5)。get

Unity 構建 AssetBundles 時,數據是按照一個肯定的方式來排序的。這就使得帶有定製下載器的應用能夠實現差別化補丁更新。it

Unity 沒有爲差別化更新提供任何內置的機制,不管是
WWW.LoadFromCacheOrDownload,仍是 UnityWebRequest,在使用內置的緩存系統的時候,都不能實現差別化更新。若是想要實現差別化更新,須要本身編寫一個定製下載器。dva

若是本文對你有幫助的話,點個贊或者評論一下吧!

下一章:【Unity3D技術文檔翻譯】第1.8篇 AssetBundles 問題及解決方法

相關文章
相關標籤/搜索