简介

BundleMaster是一款用于Unity资源加载管理的解决方案,用于替代传统的AssetBundle资源管理方式,使得加载资源变得更加简单轻松。

• 特点(基于最新的main分支)

  1. 永远开源免费,绝无任何收费内容。
  2. 自动分析依赖信息构建AssetBundle包。
  3. 通过使用Assets路径加载资源,无需打标签即可实现资源加载。
  4. 轻松卸载,自动分析引用计数。
  5. 使用CRC资源校验进行增量更新。
  6. 分包支持,可以分包更新,分包初始化,分包加载,当然也支持整体更新所有分包。
  7. AssetBundle加密,并且支持分包加密。
  8. 校验下载,更新未完成退出下次不会再下载已经下载好的资源。
  9. 调试方便,无需构建AssetBundle即可在编辑器下运行,也可以在开发阶段跳过更新流程使用AssetBundle加载资源。
  10. ETTask支持,无回调,逻辑更清晰。
  11. 注释友好,保留了所有开发期间的注释,方便阅读修改。
  12. 可选生成路径对应字段的脚本,把资源检查放在编译前。
  13. 原生资源支持,比如 wwise中的 “.bnk” 资源文件 或者 “.mp4”格式资源,可以对比更新任何资源,更加强大灵活。
  14. 支持移动端,PC端,WebGL,NintendoSwitch 多个平台,得益于模块化设计的结构,只需替换几个方法就可以轻易支持更多平台。

更新预告:后台下载支持。

• 代码示例

Note: 详细使用方法还请看视频教程与文档

public async ETTask Example()
{
    //同步加载资源
    GameObject playerAsset1 = AssetComponent.Load<GameObject>(out LoadHandler handler, "Assets/Bundles/Role/Player1.prefab");
    GameObject player1 = UnityEngine.Object.Instantiate(playerAsset1);
    //异步加载资源
    GameObject playerAsset2 = await AssetComponent.LoadAsync<GameObject>("Assets/Bundles/Role/Player2.prefab");
    GameObject player2 = UnityEngine.Object.Instantiate(playerAsset2);
    //卸载资源
    handler.UnLoad();
    AssetComponent.UnLoadByPath("Assets/Bundles/Role/Player2.prefab");
}