1.资源打包成一个个AssetBundle并放在一个叫StreamingAssets文件夹里。
2.生成所有文件的md5码值记录在StreamingAssets/files.txt中。
3.生成版本文件StreamingAssets/version.txt。如 1.0.1
4.每次出热更新包,把StreamingAssets通过ftp上传到后台资源服务器。注,勾选二进制上传。
5.首次启动游戏,解压所有StreamingAssets中的文件到PersistentDataPath中,也可以只解压files.txt和version.txt,如果只解压这两个文件,之后加载资源时需要先判断PersistentDataPath中是否存在,如果存在就直接用,不存在再从StreamingAssets中加载。如果全部解压,就只需从PersistentDataPath中加载。
6.如果首次启动,解压完所有资源之后再和后台请求版本号,得到版本号和本地version.txt中的版本进行对比,如果版本不一致,就是需要热更新。
7.如果版本不一致,从资源服中下载files.txt并和本地files.txt中的md5码进行对比,md5码不一致的文件就下载。下载完成,新的files.txt覆盖旧的files.txt,将新的版本号写入version.txt中。可覆盖可写入,正是第五步至少要解压这两个文件到PersistentDataPath目录的原因。因为这个目录可读写。
8.第六步的另一个情况是整包更,直接下载资源服的apk覆盖安装。
有时间,上代码。
网友评论