HotUpdate是一个用于UE4资源热更新下载的插件,经过测试,UMG,地图和Lua都成功热更新,理论上其他uasset资源都可以,PC,Android和IOS都测试通过。目前处于测试阶段,会持续更新,欢迎提issus。制作Pak部分推荐HotPatcher。
-
已知问题
- IOS下加载metalmap和metallib当前方案是临时方案
-
首先在Project Settings - Plugins - HotUpdate下设置参数
- HotUpdateServerUrl : 热更新服务器地址
- TempPakSaveRoot : 临时下载文件保存目录
- PakSaveRoot : Pak保存目录
- TimeOutDelay : 尝试重连间隔时间
- MaxRetryTime : 尝试重连最大次数
-
- index.php为热更新入口,根据客户端通过Json格式传入的版本号和平台,返回对应的热更新资源Json。这里版本号可以对接项目自身CICD实现自动化。
<?php // index.php ini_set("display_errors", "On"); ini_set("error_reporting",E_ALL); header('Content-Type:application/json; charset=utf-8'); $data = json_decode(file_get_contents('php://input')); $version = $data->{"version"}; $platform = $data->{"platform"}; $file = $version . "/" . $platform ."/". "version.json"; if(file_exists($file)) { $json_contents = file_get_contents($file); echo $json_contents; } else { exit(json_encode("")); } ?>
- 平台对应文件夹列表,可根据项目需求在源码中进行修改
- PLATFORM_DESKTOP && WITH_EDITOR - editor
- PLATFORM_WINDOWS - win
- PLATFORM_ANDROID - android
- PLATFORM_IOS - ios
- PLATFORM_MAC - mac
- PLATFORM_LINUX - linux
- version.json中为版本对应热更新资源列表,可根据项目自身CICD实现自动化生成。
{ "0.1.0.0" : [ ], "0.1.1.0" : [ { "File": "0.1.1.0_Asset_WindowsNoEditor_001_P.pak", "HASH": "806f2c9f104b03552145a14063648126", "Size": 15116689 }, { "File": "0.1.1.0_Lua_WindowsNoEditor_001_P.pak", "HASH": "483c3342a912bf177058f0979ea52ee5", "Size": 681 } ] }
- index.php为热更新入口,根据客户端通过Json格式传入的版本号和平台,返回对应的热更新资源Json。这里版本号可以对接项目自身CICD实现自动化。
-
相关事件列表
- OnDownloadUpdate 下载进度
- OnMountUpdate Mount进度
- OnHotUpdateFinished 热更新完成
-
IOS下metalmap和metallib加载说明