Unity 3D热更新知识入门小结之AssetBundle(3)
九、AssetBundle的卸载
1. 用处:减少内存的使用。(如果卸载不当可能导致部分资源的丢失)
2. 方法
(1)AssetBundle.Unload(false)【基本不会使用这种方法】
如果是必须使用AssetBundle.Unload(false)就只能有两种方法
【1】使用Resources.UnloadUnusedAssets。
【2】切换场景的时候自动调用。
(2)AssetBundle.Unload(true)【大多数项目使用的方法】:卸载所有的资源,所以需要确保资源都不会被使用。
十、文件校验
1. 校验常用的三种方法:CRC、MD5、SHA1(具体原理可自行了解)
2. 三者校验算法之间的区别
(1)相似点:三种算法都是通过生成一个校验值来验证数据的完整性。
(2)不同点:
【1】实际使用的算法不同。
【2】生成校验值的长度不同。CRC(16或32位) MD5(128位(16字节)) SHA1(160位(20字节))。
【3】安全性不同。SHA1 > MD5 > CRC
【4】效率不同。CRC > MD5和SHA1
【5】具体用途方面不同。CRC(通信数据校验);MD5和SHA1(安全领域的校验(数字签名、文件校验)) 。
十一、AssetBundle打包资源的常见问题及解决方式
1. 依赖包重复的问题
解决方法:(1)对于需要共享的资源打包一起;(A和B共享C,将A B C一起打包)
(2)将共享的部分资源打成一个包;(A和B共享C,将C单独打包,A B分别打包)(推荐使用的方法)
2. 图集重复问题
将所有使用自动编程纹理的对象分配到与纹理相同的资源里面。
3. Android纹理问题
使用ETC 2
4. iOS文件处理重复问题
官方处理的方法:
(1)通过合并相关资源来减少正在使用的资源的数量;
(2)使用AssetBundle.Unload(False)关闭AssetBundle的文件,然后手动管理加载对象的生命周期。
十二、AssetBundle浏览器工具
工具下载的地址(GIt):https://github.com/Unity-Technologies/AssetBundles-Browser
(具体的使用方法参考Unity官方文档对于工具的解析)
完结.....
欢迎关注我的微信公众号学习交流游戏开发相关的知识。(kuzz)