Unity 3D热更新知识入门小结之AssetBundle(3)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_41967240/article/details/102691086

九、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)

猜你喜欢

转载自blog.csdn.net/qq_41967240/article/details/102691086