基于ET6框架的资源热更

1.介绍

在游戏上线后,难免会有大大小小的bug需要修复以及版本迭代,如果要别人重新安装整包会流失大量的玩家,所以游戏实现资源热更是必不可少的,它能让玩家在打开游戏的时候花费少量时间就可以实现版本迭代。

因为ET6框架没有提供资源热更方案,所以我基于ET6框架封装了资源热更模块,实现了一下功能:

1.部署后一键打ab标签

2.生成版本文件

3.版本文件比对更新

4.断点续传(玩家下载到一半退出,下次进入可以从断点继续下载)

5.loading进度加载显示

6.本地和模拟手机两种模式切换

陈芬辉/ET - Gitee.comicon-default.png?t=LBL2https://gitee.com/chen_fen_hui/ET/tree/ETPro

2.核心代码文件

由于代码较多,大家就自己看源码吧,有发现什么bug或者可以优化的地方可以留言或pr,大部分核心文件都在Editor/AssetBundle,Mono/AssetBundle里面。

3.使用

1.部署打ab标签 :在Bundles目录下的需要打ab标签的文件夹选中后在Inspector面板create后apply,部署完成后,点击工具栏AssetBundles/Run All Check就可以一键打ab标签了

基于ET6框架的资源热更_第1张图片

基于ET6框架的资源热更_第2张图片

2.生成ab包:还是ET6自带的工具生成,别勾选打包exe,点击开始打包即可,勾选将资源打进exe则可以复制到streammingassets下

 基于ET6框架的资源热更_第3张图片

 3.切换模拟模式:点击AssetBundles/Switch Model/Simulate Model即可模拟远程资源热更,如果原先就在Simulate Model两种模式来回切下,确保本地服务器开启

4.测试 

1.将打包生成出来自动拷贝到streammingAssets 目录下的version.txt文件的所有文件的MD5码修改或删除部分本地远端的version.txt文件的md5码不同,然后删除所有文件,文件夹不能删除(下载不存在文件夹会报错)

2.点暂停再播放游戏,然后逐帧播放,进度到一半的时候停止运行记住loading进度条的位置

3.再点暂停逐帧播放游戏,就可以发现会继续上次的进度下载资源,实现了断点续传

你可能感兴趣的:(ET,Unity编辑器拓展,AssetBundle,unity,c#,游戏引擎)