【Unity】 HTFramework框架(五十四)【进阶篇】Deployment 轻量级资源部署管线
创始人
2024-11-14 05:41:57
0

更新日期:2024年7月31日。
Github源码:[点我获取源码]

索引

  • Deployment 轻量级资源部署管线
  • 使用 Deployment
    • 一、创建部署配置
    • 二、编辑部署配置
    • 三、正式开始资源部署
      • 步骤一:资源打包
      • 步骤二:资源版本构建
      • 步骤三:资源版本部署
      • 步骤四:资源版本更新
    • 四、资源下载的实时信息

Deployment 轻量级资源部署管线

Deployment为轻量级资源部署管线,整合资源打包、资源版本构建、资源版本更新为一体,快速实现资源部署和交付游戏。

使用 Deployment

Deployment为可选模块,将其添加到项目中(Assets/HTFrameworkDeployment)后,需同时结合HybridCLR代码热更新,以实现整体的资源热更新。

Deployment资源热更新可拆分为如下几个步骤:

1.[Editor] 资源打包(打AB包,编译热更程序集);
2.[Editor] 资源版本构建;
3.[Editor] 资源版本部署(部署至资源服务器);
4.[Runtime] 资源版本更新。

一、创建部署配置

在场景中使用如下快捷菜单创建部署配置DeploymentConfig

在这里插入图片描述

创建完成后如下(必须先引入框架主环境HTFramework):

在这里插入图片描述

DeploymentConfig在这里即代表了一个资源部署管线的总体配置,可以为不同的场景设置不同的配置,但理论情况下一个Project应当只存在一种资源部署策略。

二、编辑部署配置

在这里插入图片描述

部署配置面板参数详解:

  • 1.Download File Helper资源下载助手,在资源版本更新阶段,下载资源前做出自定义处理,比如远端资源服务器存在鉴权机制的话,在这里实现权限认证。
  • 2.Local Resource Path本地资源加载根路径,在资源版本更新阶段,从远端资源服务器下载资源时的存放路径,也会同步设置为AB包加载根路径(Main.m_Resource.SetAssetBundlePath),建议设置在Application.persistentDataPath路径之下。
  • 3.Build Resource Path资源版本构建根路径,顾名思义,用于存储我们构建的所有的资源版本,以资源版本号作为子文件夹区分。
  • 4.Remote Resource Path远端资源服务器根路径,一般为Web文件服务器、CDN服务器等,用于存放我们最新版本的资源,也可以是任意版本,前端运行时均会更新至该版本。
  • 5.Build New Deployment Version构建一个新的资源版本(绿色属性均为编辑器专有),以Version为当前版本号,需注意,如果当前版本为已存在的版本,则会被覆盖。

注意:每一个版本的资源,都包含能够使游戏运行的所有AB包资源和热更新程序集。

三、正式开始资源部署

步骤一:资源打包

对AB资源进行打包,比如使用AssetBundleBrowser(打包输出路径随意,平台必须为当前游戏目标平台):

在这里插入图片描述

热更新程序集进行编译,比如使用HybridCLR

在这里插入图片描述

需注意,所有热更新程序集名称、所有补充元数据程序集名称,必须添加到Main检视面板:

在这里插入图片描述

到这里,资源打包工作便完成了。

步骤二:资源版本构建

点击DeploymentConfig检视面板的按钮Build vxxx,构建一个新的资源版本,构建成功后,在Console点击资源版本的链接即可打开该版本文件夹:

在这里插入图片描述

资源版本文件说明如下:

在这里插入图片描述

资源版本构建程序会自动搜索AB包、热更程序集、补充元数据等,理论上不需要人为改动其中任何东西,特别是版本信息文件,因为其中会记录每个资源文件的校验码等信息,是作为资源版本更新时实现增量更新的关键。

当我们有新的资源版本被构建时,在这里是能够回顾所有构建版本的:

在这里插入图片描述

步骤三:资源版本部署

使用自己的方式将最新的资源版本(或者你想要前端使用的任意版本)拷贝到远端资源服务器上,放在部署配置时设置的Remote Resource Path路径下,切记不要直接拷贝版本号文件夹(比如v1.0.0),而是拷贝其中的所有文件

步骤四:资源版本更新

完成以上三个步骤,我们的资源版本已经完成了部署,接下来只需在游戏程序的运行时更新资源即可,尽量在执行任一业务逻辑代码之前。

不过,由于启用了HybridCLR后框架会首先进入静默状态,此时所有逻辑代码都还未执行,所以很方便完成资源更新:

			//进行资源版本更新             yield return DeploymentConfig.Current.UpdateResource((info) =>             {                 //更新中回调......                 //info 为资源下载信息,稍后讲解其中的参数             });  			UpdateResourceDownloadInfo info = DeploymentConfig.Current.DownloadInfo; 			//资源更新完成             if (info.IsDone)             {                 if (info.DownloadResult == UpdateResourceDownloadInfo.Result.Success)                 {                     //资源更新成功                 }                 else                 {                 	//资源更新出错,info.Error 为错误描述                 }             } 

很显然,我们只需要调用一个入口方法UpdateResource即可完成资源版本更新、HybridCLR补充元数据、HybridCLR热更新程序集加载等一系列热更流程。

且下载资源文件时,会比对校验码,只下载发生变化的资源文件。

不过需注意,在UpdateResource方法下载资源的过程中,只要出现一个资源下载失败,就会造成整体流程失败,需重新调用UpdateResource方法再次下载,不过请放心,上一次已下载的文件不会重复下载。

到此,确保资源更新成功后,会自动解除框架的静默状态,游戏程序会正确的进入生命周期,资源热更新流程结束。

四、资源下载的实时信息

我们可以通过监控资源下载的实时信息(UpdateResourceDownloadInfo),以完成一些自定义行为,比如显示下载进度、下载速度、下载耗时等。

资源下载的实时信息(UpdateResourceDownloadInfo)类详解:

  • 1.IsDone:整体资源热更新流程是否完成。
  • 2.DownloadResult:下载状态,以此判断资源热更新是否成功。
  • 3.Error:如果下载资源出错,此为错误信息。
  • 4.DownloadVersion:下载的资源版本号。
  • 5.TotalDownloadFileNumber:需要下载的文件数量。
  • 6.DownloadedFileNumber:已下载的文件数量。
  • 7.TotalDownloadFileSize:需要下载的文件总大小(单位:KB)。
  • 8.DownloadedFileSize:已下载的文件总大小(单位:KB)。
  • 9.DownloadedTime:已下载持续时长(单位:s)。
  • 10.DownloadedSpeed:实时下载速度(单位:KB/s)。

相关内容

热门资讯

详情一下!乐酷副厅外卖辅助,传... 详情一下!乐酷副厅外卖辅助,传送屋高仿版辅助,本来真的有挂(哔哩哔哩)乐酷副厅外卖辅助脚本下载中分为...
科普一下!超凡辅助软件,永胜联... 科普一下!超凡辅助软件,永胜联盟辅助器,原来真的是有挂(哔哩哔哩)1、进入到超凡辅助软件是否有挂之后...
专业一下!随意玩有没有辅助,全... 专业一下!随意玩有没有辅助,全民比鸡bug,切实是有挂(哔哩哔哩)在进入随意玩有没有辅助软件靠谱后,...
了解一下!打哈儿辅助软件,方片... 了解一下!打哈儿辅助软件,方片十三张脚本,原来是有挂(哔哩哔哩)1、超多福利:超高返利,海量正版游戏...
教你一下!决战卡五星辅助ios... 教你一下!决战卡五星辅助ios,微乐家乡自建房辅助app,一直真的是有挂(哔哩哔哩)微乐家乡自建房辅...
辅助一下!微乐降序自建房辅助a... 辅助一下!微乐降序自建房辅助app,战神辅助官网,真是真的有挂(哔哩哔哩)1、进入到微乐降序自建房辅...
详细一下!微乐辅助靠谱麻,新5... 详细一下!微乐辅助靠谱麻,新518互游脚本下载,真是真的是有挂(哔哩哔哩)1、玩家可以在新518互游...
了解一下!广西优乐免费辅助,途... 了解一下!广西优乐免费辅助,途游辅助软件网站,一直是有挂(哔哩哔哩)1.途游辅助软件网站 选牌创建新...
辅助一下!创思维激k辅助器免费... 辅助一下!创思维激k辅助器免费,玖天乐游辅助,本来有挂(哔哩哔哩)1、上手简单,内置详细流程视频教学...
必备一下!四川游戏家园通用辅助... 必备一下!四川游戏家园通用辅助,葫芦娃七子降妖破解版,确实存在有挂(哔哩哔哩)1、玩家可以在四川游戏...