unity 关于LoadFromCacheOrDownload(原)
来源:互联网 发布:github java 项目 编辑:程序博客网 时间:2024/05/20 04:48
初衷是想研究下u3d的热更新资源,所以看到这个api, 本来想用它来做,但是后来发现一些新问题,就改用别的方案了,具体细节会另开一篇文章,这里只单说下LoadFromCacheOrDownload它自己
一。函数功能:用来从服务器下载资源,并且保存在本地高速缓存,下次资源没改变的情况下从高速缓存读取
二。参数:
url:资源地址
version:资源版本
只要版本号改变(无论增大还是减小),就会重新下载
crc:资源校验码
1.crc是用来校验文件是否改变或损坏,每一个文件都有一个crc码
2.当第一次下载资源时,会用当前的crc和服务器上的资源做crc校验,如果不同,则返回下载失败,相同才下载
3.当本地有当前资源的缓存时,并且版本号没变的情况下,会和本地的资源做crc校验,如是不同(损坏或下载了不完整的资源),会重新去服务器下载资源
4.当crc为0时,则不校验
5.crc是在打包assetbundle时生成的(官方说是32位的crc码,但用通用的32位crc算法自己生成文件校码后,发现和u3d生成的不同,应该u3d自己换了算法或换了码表,4.2以后的版本打包才有,所以之前的版本只能传0)
打包时的crc生成,4.2版本没有crc参数
uint crc = 0;
BuildPipeline.BuildAssetBundle(Selection.activeObject, selection, path, out crc , BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets, BuildTarget.StandaloneWindows);
3其它说明
下载后的高速缓存会存在各系统的沙箱目录下Application.persistentDataPath
PC的是C:\Users\用户名\AppData\LocalLow\Unity\WebPlayer\Cache\CompanyName_ProductName
每个版本会下载对应的缓存文件夹
每份缓存由__info和CAB-XXXX组成
__info中记录的应该是当前资源的版本号,CAB-XXXX应该就是缓存文件了,本地有缓存时就应该是和它做crc校验了,当CAB-XXXX被改变时(可以人为破坏),crc校验失败,就会重新从服务器下载新的资源
- unity 关于LoadFromCacheOrDownload(原)
- unity 关于四元数Quaternion(原)
- unity 关于静态数据表excel(原)
- unity 关于新的动画系统animator的动作混合(原)
- WWW.LoadFromCacheOrDownload简介
- LoadFromCacheOrDownload 同步加载
- 关于原码、反码、补码(ZZ)
- [原]关于变长参数
- 关于原码 补码
- unity 各平台下文件读写沙箱目录及ios审核(原)
- unity ngui UIPanel和UIWidget做为容器使用时的区别(原)
- Unity(五) Unity3D使用Assetbundle打包加载(Prefab、场景)转载原博客
- Unity原厂讲师大解密
- unity 使用Dotfuscator给dll混淆(原)
- (原)关于指针的一些个人想法
- 原博客 地址(主要关于C++) mark,勿忘
- 关于原码、反码和补码(网上转载)
- unity关于图形学基础知识(五)
- 设置socket IP_TOS选项
- 撤销(下架)已经通过审核的app
- vim常用方法
- ThinkPHP开山篇--0
- java.lang.ClassNotFoundException: com.hadoop.WordCount$Map
- unity 关于LoadFromCacheOrDownload(原)
- Python 代码风格 和 PEP8
- $.ajax返回的页面取里面控件的值
- Activity之间传递ArrayList<自定义类>数据
- siblings
- Wireshark基本介绍和TCP三次握手
- SWFObject is undefined 未定义问题?
- spark-sparkSQL
- 各种数据库的分页查询语句