assetbundle 资源管理思路怎么实现, 什么时候删除assetbundle 合适
定时删除.
把assetbundle 看成资源组,根据该资源组在游戏逻辑里面的分类来定制删除策略。
定时删除? 条件是啥
这个时间内没有再次使用就删除呗
类似于你把一个页面隐藏如果一定时间内不再打开那就销毁
分类型吧:
1.永不删除(公共资源)
2.用完就删除(界面相关的,关闭就删除)
3.延迟删除(如果使用频率高,不想马上释放的, 可以不断刷新删除延迟,以达到使用不影响的情况)
4.定时删除(定时检测哪些资源没有使用,且超过一定时限的,比如5分钟检测一次)
界面算使用频率较高的吧
有这种框架吗
建议不要用太通用的框架,自己根据游戏逻辑的需要去分组和删除。
例如,逻辑上要用一个模型 ActorA,这个ActorA的资源就放到bundle “actor_a”里面,那么在ActorManager里面,对ActorA的创建和销毁进行引用计数,以及引用时间。当引用计数归零的时候,定时根据引用时间的超时去释放这个actor_a。
这样不同游戏逻辑用到的不同类型资源组,例如模型,特效,界面这些分类。就可以有不同的管理策略,可以根据项目来细致调配。太通用的框架,不方便配置和细调。
是的,每个项目不一样,只能做个参考
有没有可以参考的案例,可以学习下
bundle 不删除,只卸载bundle内的资源
和unity 的assetbundle 不一样吗,cocos bundle 为啥不删除呢,不占空间? 我现在还没找到一个合适的cocos删除资源的例子
cocos 的 bundle 粒度比 unity 大很多,cocos bundle 是一个文件夹, unity 的 bundle 是一个压缩包。cocos bundle 本身只是一个资源清单,记录文件信息。而 unity 的 bundle 是包括配置资源清单和资源的
意思cocos bundle 没有资源占用, 只有加载asset 的时候才会有占用? cocos加载assetbundel ,不加载资源等于没占用资源? 那大佬有推荐的资料可以学习吗, cocos 资料好难找到合适的案例
不能说没有资源占用吧,只能说维护卸载的收益太小,assetbundle 的配置文件相当于 unity addressable catlog,维护资源卸载的话通过 asset 本身的 addRef 和 deRef 接口来记录资源引用计数,当引用技术变化时,为 0 就卸载了
如果做预加载,是预加载bundle 还是要把bundle 里的asset 再load 一遍? 感觉和unity 的bundle 用法介绍一样,感觉还是不一样, unity 的bundle 占很大资源, 而cocos 的bundle 不用卸载,感觉不占用资源是的
预加载只是加载了配置文件,真正加载资源到内存要通过load,你再仔细读看看文档,资源使用方案各种各样但只要保证decref和addref成对的就差不多了,反正围绕引用系数来构建方案使用资源
楼上都说了bundle就是个资源清单 实在不理解的你就打印一下resources这个内置的bundle