操作流程
1. 插件下载
插件是开源的,需要下载:
https://github.com/hxhb/HotPatcher
2. 插件放入
基础操作:打开项目创建一个新的空白插件名字是:HotPatcher
将下载插件HotPatcher放入到plugins目录中,整体替换创建的空白插件HotPatcher
3. 打基础包
- 是将基础包打出来,就是正常的UE打包的方式
- 在基础包的基础上,通过HotPatcher将正常的基础打出xxx_Release.json文件,该版本记录的是打出的基本包资产的Hash,资产引用关系等,也就是最初版本的一个全部文件的引用关系。
4. 打Patcher增量包
- 打Patcher增量包,选择上一个版本的xxx_Release.json,增量是以此json文件为基础,进行增量的添加,这一过程也会打出所有文件的引用关系,资产等
打热更包步骤
- 打开 HotPatcher,选择 ByRelease,导出 *_Release.json,其中记录了所指定的每个资源的信息;
- 使用 UE 直接打包任意平台的项目(如 windows/android/ios)
- 在工程中修改 / 添加 / 删除资源,修改引擎 / 项目 / 插件的设置等;
- 在ByPatch下, 勾选 Cook Patcher Assets;
- 打开 HotPatcher,选择 ByPatch,以上面导出的 *_Release.json 为基础版本,根据需求选择需要打到 Pak 中的内容;
- 点击 GeneratedPatch,会生成 Pak 文件和各种信息(其中也包含当前版本的 *_Release.json,使 Patch 可以增量更新)
- 生成的 Pak 中就包含了与上次打出的包中所有差异的内容。
打热更包
图示
先打出基础包,也就是最基本的exe应用。
启动HotPatcher,选择 ByRelease,导出 *_Release.json,其中记录了所指定的每个资源的信息;
导出的release.json文件放入到打出包的.exe目录下。
基础的资产以及资产的引用关系打出来,对文件的修改,逻辑的添加,地图的增添等之后,选择 ByPatch,以上面导出的 *_Release.json 为基础版本,根据需求选择需要打到 Pak 中的内容;
点击运行,应该就是实现了热更,不需要每次都进行打包
基础原理
通过记录每一个资源的GUID,创建唯一编码,也即是对每一个文件添加了唯一的标识符,
通过每次的打patcher,知道改动的是哪些,将打出来的pathcher就可以修改或增添或删除原来的文件的GUID,以及逻辑关系,实现热更。