Unity3D:框架设计之AssetBundle打包及加载

翻看之前的文章总觉得少点什么,想更新框架相关文章又不知道该更新什么。后来终于发现,还没有写有关于AssetBundle打包及加载相关的内容,导致我想写其他内容总是觉得少点什么。之前的文章有AssetBundle打包相关的代码具体实现就不再详细说明,我只讲框架是怎么设计的。

首先,AB包管理是通过json文件管理的,Eidtor打包完ab后,会自动生成config文件,对当前ab内容进行记录,更新内容也是通过这个config文件进行比对的。文章源自大腿Plus-https://www.zhaoshijun.com/archives/2058

这个配置文件包含的内容:文章源自大腿Plus-https://www.zhaoshijun.com/archives/2058

  1. GameVersion:游戏版本
  2. ResVersion:资源版本
  3. Platform:当前平台
  4. Des:热更描述
  5. Modules:ab包模块
    1. ModuleName:模块名(一级目录)
    2. Folders:单个ab包
      1. FolderName:ab包文件夹名(二级目录)
      2. BundleName:ab完整包名
      3. Tag:标记
      4. MD5:MD5校验
      5. Size:资源大小
      6. Dependencies:依赖项

不管是脚本还是资源更新都是通过这样的方式进行更新的,只不过是两套相同的代码,因为一套是放到app包内用来更新脚本,一套是放到更新脚本内的用来更新资源。这么说可能有点绕,说简单点就是,第一套是放在app内用来更新脚本ab的,然后脚本ab内还有一套是用来更新资源的。为什么没有放到一起,是因为之前是用Lua热更的,HybridCLR热更是后加的,所以就分开进行了,这也是接入进来最简单的方式了。文章源自大腿Plus-https://www.zhaoshijun.com/archives/2058

上面说了怎么设计,下面就说说怎么管理和具体怎么使用。管理其实不用太关注,因为已经写好了代码,程序运行之后就会自动进行ab包的更新下载,然后通过AssetBundleManager加载,使用的时候可以通过AssetManager加载资源,也可以直接加载对应AB包,在ab包内获取资源。具体代码可以在相应脚本内查看。文章源自大腿Plus-https://www.zhaoshijun.com/archives/2058

具体AB打包,后面在说Editor工具类的时候会详细说,这里也就不在赘述了。文章源自大腿Plus-https://www.zhaoshijun.com/archives/2058

项目GitHub仓库地址:https://github.com/Josh-Jun/UnityAppFramework.git文章源自大腿Plus-https://www.zhaoshijun.com/archives/2058

项目Gitee仓库地址:https://gitee.com/shijun_z/UnityAppFramework.git文章源自大腿Plus-https://www.zhaoshijun.com/archives/2058 文章源自大腿Plus-https://www.zhaoshijun.com/archives/2058

我的微信
微信扫一扫
weinxin
shijun_z
我的QQ
QQ扫一扫
weinxin
846207670
 最后更新:2024-3-18
大腿Plus
  • 本文由 大腿Plus 发表于 2024年3月5日 16:13:33
  • 转载请务必保留本文链接:https://www.zhaoshijun.com/archives/2058

发表评论