[Unity 3D] 盘点 Github 上的那些 AssetBundle 框架

在 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:

  • https://github.com/tuyoogame/YooAsset
  • 快速开始

ABSystem


Reference:
https://github.com/tangzx/ABSystem

AssetBundleLoadManager

  1. 基于索引计数与对象绑定的AssetBundle加载管理简易框架。(参考: tangzx/ABSystem思路)
  2. 集成导表工具框架
  3. 集成资源热更以及版本强更框架
提供了大量的 GUI 工具集

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
  • 支持打包报告
  • 支持打包流程自定义(自定义分包、版本规划、结束流程、自定义标签等)
  • 包含本地资源服务器
  • 支持快速版本切换,回退
  • 支持历史版本找回

WooAsset

外国友人

https://github.com/kamanii24/AssetBundleManager


https://github.com/SadPandaStudios/AssetBundleManager - Yet another asset bundle manager for Unity.

写在最后:

  • 三人行必有我师焉,大家看看有木有借鉴得地方。
  • 资源热更框架都逃不过 Unity AssetBundle 那一套,大家做轮子也就是实现各自的基于 AssetBundle 的工具链,包括但不限于:

编辑器方面:

  1. 完善的 Editor AB 开发工作流,所有操作有可视化窗口
  2. 有 self-host 测试环境,支持 Editor 下直接 AB 模拟加载

规则方面:

  1. 资源加密
  2. 设计分包策略,预设优化规则,保证不重复打包
  3. 包体依赖关系整理

客户端加载:

  1. 版本更新逻辑、资源检测 、增量下载,边下边玩
  2. 多线程下载、断点续传
  3. 依赖加载,引用计数
  4. async / await 异步语法糖(Coroutine 也挺好)
  • 其实,我还是很看好 Addressable Asset System,上面列举的特性都有了,而且Unity 正在搭建自己的生态环境,再配合 UniTask 实现异步当同步写...值得更多关注.

你可能感兴趣的:([Unity 3D] 盘点 Github 上的那些 AssetBundle 框架)