欢迎光临散文网 会员登陆 & 注册

AssetsBundle的资源管理机制 AB包

2022-09-24 15:09 作者:游戏开发RAIN  | 我要投稿

Cocos Creator 3.x 引入了 AssetsBundle的资源管理机制,我们叫它Ab包。我们的资源管理也是基于Ab包来进行管理。上面讲解了我们的框架原则,所有的内容都是代码生成的,必然我们要加载资源,然后生成节点到场景。我们来分析一下码加载的资源类型,总结了一下,分为5类:

(1)预制体Prefab: 游戏地图预制体, 游戏角色预制体,例子预制体,UI预制体等;

(2)音乐与音效的AudioClip: 游戏中的音乐与音效资源需要加载然后播放;

(3)SpriteAtlas与SpriteFrame玩家头像,任务图标等更换图标的精灵对象;

(4)TextAsset: 游戏策划数据数值表: csv文件与json文本文件资源;

(5)Material材质对象: 有些3D物体需要切换材质对象,需要代码加载材质对象然后切换;这5类资源就是我们代码直接加载的资源类型,其它的都可以作为资源的依赖;

搞清楚了需求后,我们就来确立划分Ab包的原则, 我们按照资源的用途来分ab包,比如游戏UI,游戏地图,游戏角色,游戏特效等,根据用途来把资源分成一个或多个ab包。我们代码直接加载的是上面分析的4种类型,TextAsset, AudioClip与SpriteAtlas, SpriteFrame直接加载就可以了,其它的都是预制体,而预制体又依赖于其它资源,我们专门新建一个文件夹Prefabs用来存放做好的预制体,预制体的依赖我们新建一个Materials(原材料)文件夹用来存放这些依赖资源

按照功能用途分好文件夹以后,就可以指定ab包了。

如何分ab包完成以后,接下来就是资源管理的代码,基于ab包加载资源。由于Cocos Creator ab包资源加载都属于异步加载,所以我们的资源管理的思想是,进入之前先加载好主要资源,然后再进入游戏内容。如果有特别的一些资源,运行的时候,先加载后再使用。资源管理类也是一个管理的单例,主要的接口如下:

(3) releaseResPkg接口: 卸载资源包中的资源;

(4) preloadAsset接口: 加载ab包中的某个资源;

(5) releaseAsset接口: 释放ab包中的某个资源;

(6) getAsset接口: 获取ab包中的某个资源

加入我的游戏开发交流群,

给你分享更多游戏源码及其他学习素材


AssetsBundle的资源管理机制 AB包的评论 (共 条)

分享到微博请遵守国家法律