BundleMaster是一款用于Unity资源加载管理的解决方案,用于替代传统的AssetBundle资源管理方式,使得加载资源变得更加简单轻松。
• 特点(基于最新的main分支)
- 永远开源免费,绝无任何收费内容。
- 自动分析依赖信息构建AssetBundle包。
- 通过使用Assets路径加载资源,无需打标签即可实现资源加载。
- 轻松卸载,自动分析引用计数。
- 使用CRC资源校验进行增量更新。
- 分包支持,可以分包更新,分包初始化,分包加载,当然也支持整体更新所有分包。
- AssetBundle加密,并且支持分包加密。
- 校验下载,更新未完成退出下次不会再下载已经下载好的资源。
- 调试方便,无需构建AssetBundle即可在编辑器下运行,也可以在开发阶段跳过更新流程使用AssetBundle加载资源。
- ETTask支持,无回调,逻辑更清晰。
- 注释友好,保留了所有开发期间的注释,方便阅读修改。
- 可选生成路径对应字段的脚本,把资源检查放在编译前。
- 原生资源支持,比如 wwise中的 “.bnk” 资源文件 或者 “.mp4”格式资源,可以对比更新任何资源,更加强大灵活。
- 支持移动端,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");
}