美文网首页
AssetBundle打包

AssetBundle打包

作者: 小星星幼儿园 | 来源:发表于2017-07-20 13:13 被阅读0次

    AssetBundle打包方案主要基于以下几方面考虑:

    1. 资源的归类划分,方便资源加卸载
    1. 避免重复打包重复加载
    2. ab包粒度大小

    AssetBundle打包时能够解决依赖关系。比如对Prefab A打ab包,会遍历所有引用到的资源,如果任一资源没有独立打包,那么该资源会被打进ab包中。基于以上考虑,我们在打包时首先对prefab分类设置打包,然后对于一些公用的资源设置独立打包。从加载特性和资源类型上来说,要设置ab打包的资源主要分为三大类:

    归属明确的Prefab :

    1. audio --以单个音效为单位打包
    1. ui --以panel为单位打包,同个panel的ui prefab打进同一个ab包
    2. model --以单个卡牌为单位打包,关联音效动作打进同一个包
    3. skill --以单个技能为单位打包

    公用资源:

    1. ui图集 ui prefab的公用资源
    1. 公用贴图打包 (特效会存在很多复用贴图,需要独立打包) ps:目前这个还没做

    动态资源:

    1. 动态使用的ui prefab
    1. 动态使用的skill 相关prefab、model相关prefab、ui相关prefab
    2. panel公用的ui prefab --没有静态依赖的包依赖关系,划分为动态资源

    对于归属明确的prefab,有比较明确的使用点,全部采用动态加载ab包的方式。对于公用资源,不需要主动加载,在加载ab包时,会通过引用关系加载引用到的公用资源ab包。对于动态资源,使用时间不明确,归属分散,资源量不大,目前采用预先加载的方式。

    目前的打包方案是一步一步进化而来的,从加载和使用角度定制的方案,还不够统一和纯粹。比如对于不同类型的资源有不同的细节规则,这样就不好统一管理ab包和资源加卸载。另外并没有对所有资源进行打包,这样难免会造成部分公用资源重复打包和重复加载。未来希望能够继续对打包方案进行优化,有更加统一完整的方案。

    目前我们项目Resource目录下还有一些场景加载用到的资源、以及一些字体资源,后面也考虑放到ab包,做到Resource目录比较干净。

    相关文章

      网友评论

          本文标题:AssetBundle打包

          本文链接:https://www.haomeiwen.com/subject/jqidkxtx.html