您好,登錄后才能下訂單哦!
環境:win10, unity2018, vs2015
最近在弄ab包
有幾種加載方式,其中一種就是
WWW.LoadFromCacheOrDownload(string url, int version)
url是ab包的地址,version是版本號
問題就出在這個version上
看官方文檔也沒有說清這個版本號是哪來的,干什么用的
進行了大量搜索以及使用,才大概弄明白
首先,這個version版本號并不記錄在ab包文件中,比如對應的manifest文件
那是從哪來的呢
其實很簡單,這個版本號是開發者自己賦予的。
而賦值的地方恰恰就是這句代碼
WWW.LoadFromCacheOrDownload(string url, int version);
即,當你用這個語句加載包時,比如咱們把version設置為2
系統會判斷你本地有沒有加載過這個包,有的話,再看加載過的包的版本是不是2
如果沒有版本號為2的,則從url地址下載到本地緩存,并且給這份緩存編一個version號,即2
這個我是做webgl程序時試用的
也就是說,如果你在一個瀏覽器中第一次打開你的webgl項目,你在上面的加載語句中給了一個版本號是2,那瀏覽器看到本地沒有緩存就會去url地址上下載,并將2做為版本號賦給這份緩存。下次再打開,如果程序沒變,版本號還是2,那么本地有之前下載的緩存且版本號為2,程序就不會從url處下載,而是直接讀取本地的緩存。這就是緩存的意義所在吧。
那么下次再打開,而請求的版本號改為了3,同理,程序判斷本地緩存沒有版本號為3的,同樣再從url處下載到本地,存成另一份緩存,并賦予其3做為版本號
綜上,你以一個版本號來請求時,程序(瀏覽器)會在本地已有的緩存中查找,如果已有此版本號的緩存,則直接從本地該緩存讀取,如果沒有則從url處下載,存到本地,賦予本次請求的版本號
所以之前最大的糾結就是這個版本號到底是在哪里設置的,其實就是在請求下載的時候那個參數。
另外,如上所述,如果你用不同版本號加載過,那么其實本地會存有不只一份緩存。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。