在 GitHub 遇到个奇怪的现象:我发现在 Unity 官方提供了 AddressableAssetSystem 的情况下,国内还是有好多小伙伴热衷于搭建自己的资源热更框架
尊重从肯定他人的努力开始,存在即是有道理,闲话少叙,盘起来:
XAsset
xasset 让 Unity 快速打包和运行。
Reference:
https://github.com/xasset/xasset - 开源版
https://xasset.pro/ - 商业版
https://www.xasset.pro/docs/getstarted - 文档
TinaX.VFS
Virtual Files System - Assets management service package for TinaX Framework to Unity
虚拟文件系统,无感知的AssetBundle管理
Reference:
https://github.com/yomunsam/TinaX.VFS
QFramework.ResKit
Unity 开发框架 QFramework 的内建资源管理模块
Reference:
https://github.com/liangxiegame/ResKit
Game Framework.Resource
Unity 开发框架 Game Framework 内建的一套完整的异步加载资源体系(仅保留异步加载资源的接口)。
Reference:
Game Framework.Resource
Game Framework.Resource 文档
KSFramework-ResourceModule
KSFramework(KEngine)是一个用于Unity3D引擎的AssetBundle框架。核心资源模块 ResourceModule 为AssetBundle 的资源加载、打包提供完整的一套工程规范,减少在项目开发过程中踩坑的时间
Reference:
KSFramework-ResourceModule
https://mr-kelly.github.io/KSFramework/resource/guide/ - 文档
BundleMaster
JEngine 集成的 AssetBundle 资源加载大师,有爱的 B站Up主,最近持续更新中。
Reference:
https://github.com/mister91jiao/BundleMaster
https://www.unitybundlemaster.com
B站 : https://www.bilibili.com/video/BV19341177Ek
CatAsset
Unity AssetBundle资源管理框架,提供了打包,更新,加载的一站式资源管理 - 笔者按:名字怪萌的
zcode-AssetBundlePacker
Unity的AssetBundle模块扩展插件,主要目的用于简化AssetBundle打包,提供AssetBundle管理,支持热更新、支持资源包下载、支持版本控制。
YooAsset
YooAsset是一个基于Unity3D引擎的资源管理插件,途游提供技术实现与支持,目前正在快速迭代中。
Reference:
ABSystem
Reference:
https://github.com/tangzx/ABSystem
AssetBundleLoadManager
- 基于索引计数与对象绑定的AssetBundle加载管理简易框架。(参考: tangzx/ABSystem思路)
- 集成导表工具框架
- 集成资源热更以及版本强更框架
fuxi (伏羲)
- 使用配置文件管理, 不同平台不同配置
- 一键 打包, 自动分析冗余,支持 分包及分包下载,支持加密
- 支持 同步 异步加载资源
- 支持全量、分包更新, 边玩边下;支持多线程&断点续传
- 支持 资源 引用 动态 分析
提供了一套编辑器工具,看着就很用心吖:
Reference
fuxi(伏羲)
UnityResourceSolution
来自 夜莺-killop 的解决方案,声称写了yooasset的编辑器部分,和运行时的底层加载逻辑,业务层和yooasset保持一致,这个网友可不简单,超级活跃。
- 支持边玩边下载资源
- 完备的基于tag的资源管理系统,一个资源多个tag
- 按照目录结构更新
- 文件不以hash结尾
- 全网唯一支持二次打包的系统,根据第一次打包的结果,自动优化ab大小,io数量。在零冗余和减少IO之间取得一个适当的平衡,相信我,用了它你会起飞的
- 优化并且扩展了smart-library 打造了一个优美的打包资源收集系统
- 支持 AssetBundleBrowser
- 无状态多版本管理系统
- binary diff,保证多版本之间最小更新体积
- shader变体收集工具
- shader变体裁剪工具
- 动画任意长度裁剪工具
- 动画属性绑定失败纠正和报错工具
- 材质多余属性剔除工具
https://github.com/killop/UnityResourceSolution
WooAsset
来自 编辑器奇才水蜜桃同学的资源管理框架,特性丰富、文档完善,项目更新活跃,Woo ≈ 喔,惊呆的意思,哈哈!
特性太多,摘录部分,更多请查阅文档。
- 一个简单、高效、易扩展的 AssetBundle管理工具
- Editor、Runtime均支持同步、异步、委托、携程
- 支持分布式构建(支持mod)
- 支持自定义资源加密
- 支持 shader 变体收集
- 支持webgl
- 支持打包报告
- 支持打包流程自定义(自定义分包、版本规划、结束流程、自定义标签等)
- 包含本地资源服务器
- 支持快速版本切换,回退
- 支持历史版本找回
外国友人
https://github.com/kamanii24/AssetBundleManager
https://github.com/SadPandaStudios/AssetBundleManager - Yet another asset bundle manager for Unity.
写在最后:
- 三人行必有我师焉,大家看看有木有借鉴得地方。
- 资源热更框架都逃不过 Unity AssetBundle 那一套,大家做轮子也就是实现各自的基于 AssetBundle 的工具链,包括但不限于:
编辑器方面:
- 完善的 Editor AB 开发工作流,所有操作有可视化窗口
- 有 self-host 测试环境,支持 Editor 下直接 AB 模拟加载
规则方面:
- 资源加密
- 设计分包策略,预设优化规则,保证不重复打包
- 包体依赖关系整理
客户端加载:
- 版本更新逻辑、资源检测 、增量下载,边下边玩
- 多线程下载、断点续传
- 依赖加载,引用计数
- async / await 异步语法糖(Coroutine 也挺好)
- 其实,我还是很看好 Addressable Asset System,上面列举的特性都有了,而且Unity 正在搭建自己的生态环境,再配合 UniTask 实现异步当同步写...值得更多关注.