CocosCreator 资源加载与释放

creator资源加载分为静态加载和动态加载,这里主要研究动态加载。

静态加载的资源

直接被编辑器节点树引用的资源,实例化时,引擎会自动静态加载;

对于静态引用资源(通过编辑器绑定的资源),引擎会自动统计引用计数并在计数为0时自动释放。

动态加载资源

需要动态加载的资源,一般放在resources目录下,使用cc.resources.loadAny加载,但是加载资源本质上都是通过cc.AssetsManager的pipeline加载管线进行加载的。

Creator使用管线来处理整个资源加载流程,这样解耦了资源处理流程,也方便我们自定义整个加载流程。下面是一个加载管线的简易流程图:

AssetManager内置了3条管线,普通的加载管线、预加载、以及资源路径转换管线。

pipeline用于正常加载,用到了下载器(downloader)和解析器(parser)。

fetchPipeline用于预加载,用到了下载器。

transformPipeline用于转换资源路径,找到真实的资源路径,位正常加载管线和预加载管线服务。

动态加载的resources资源,在选择自动释放时只需要开发者维护好资源的引用计数就好了,Creator 会根据引用计数自动进行释放。而当项目中使用了更复杂的资源释放机制时,可以调用 Asset Manager 的相关接口来手动释放资源。

实践建议

主动释放:动态加载的资源在不需要时,可以主动释放掉(注意依赖列表)。

运用动态加载:非必要的资源不要直接通过层级管理器加到场景里,这部分资源属于静态加载的资源,Cocos会在这些资源都加载完才显示游戏画面。当静态资源很多时,黑屏事件会持续很久,所以可以运用动态加载的方式避免长时间黑屏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值