温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

LoadFromCacheOrDownload的versio

发布时间:2020-08-09 06:00:07 来源:网络 阅读:395 作者:lreach 栏目:游戏开发

环境: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处下载,存到本地,赋予本次请求的版本号

所以之前最大的纠结就是这个版本号到底是在哪里设置的,其实就是在请求下载的时候那个参数。
另外,如上所述,如果你用不同版本号加载过,那么其实本地会存有不只一份缓存。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI