Unity资源下载思路

本文总结了Unity中资源更新的实现思路,包括资源打包、下载和加载。资源打包成AssetBundle,删除不必要的.meta和.manifest文件。资源下载根据本地和服务器配置表对比更新,利用MD5检查差异。资源加载时初始化AB资源管理,管理加载状态。重点讨论了Manifest文件的作用和路径处理。整个过程类似于文件夹复制,关键在于配置表的管理和资源的MD5校验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一直在弄资源更新这块,前前后后用了一个星期,由于没有这块的经验和本身是一名小白,在做的过程中真的是很痛苦,反复的查找各种资料,看别的帖子总是理解的不是透彻,容易发生思路跑偏,不过最后终于弄出来了,实现的逻辑是参考的github上的 类似项目案例,这个帖子只是为了总结一下资源更新的大体思路

1.资源打包:

更新的资源是打成AssetBundle的(好像没毛病),也就是更新沙盒目录的AssetBundle实现游戏更新,在打包的时候有需要注意的问题,就是生成AssetBundle它会有两个对应的文件,.meta文件和.manifest文件,这块在生成的资源配置表的时候可以去过滤掉,或者直接删除,配置表的生成无非是遍历你输出的AssetBundle文件夹下的所有ab文件,取出每个文件的一些需要的信息,必须包含文件的MD5,文件相对路径,其他信息可以自行添加,MD5是为了对应资源是否发生的改变,文件的相对路径是为了下载时候的URL拼接以及在沙盒中的位置也是这个相对路径

2.资源下载(下载资源哦)

首先资源下载模块把游戏的状态分为两个,一个是第一次安装进游戏,另一个是之前进入过游戏,第一次进入游戏有一个解压资源的过程(其实就是把项目随包体的assetbundle拷贝到沙盒目录,包括扩资源的配置表信息,条件是判断沙盒中有没有资源的配置表),完事之后获取,本地的配置表和服务器的配置表,然后依照服务器的配置表取修改本地的资源(遍历本地的配置表,如果在服务器的配置表中存在,直接从服务器资源集合中删除,不存在的话吧本地的资源删除,然后集合中剩下的就是需要更新的),MD5的使用就在这,看别人的帖子总是说找出差异的资源(通过ab的名字获取MD5值然后进行比较),叫我现在的理解就是把服务器的资源列表的MD5集合与本地的MD5的集合进行比叫,根本不用管什么名字,如果本地的资源MD5在服务器上没有就说明你的这个资源已经不适用了,然后在本地删除

3.资源加载(游戏使用的资源信息提前加载)

这块的话就是在下载完之后的回调函数里面进行ab资源管理的初始化(就是通过总的Manifest文件获取到所有的ab路径信息和依赖信息,还有一个需要做的就是由一个集合去管理加载的AssetBundle,因为有些As

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值