当前位置: 首页 > news >正文

cocos creator 资源管理

cocos creator 在使用过程中,经常需要动态加载远端资源,比日说 用户头像龙骨动画皮肤资源,这些资源不可能都做成 预制体交给 cocos creator 帮助我们管理;

这个时候就需要我们 动态加载远端资源但是 动态加载的资源,cocos creator是不会帮我们自动处理的,需要我们在不使用的时候  手动释放,减小内存控件的占用

 官方文档:Cocos Creator 资源管理

cocos creator 动态资源加载:

动态加载用户头像

public static webSprite(path: String) {return new Promise<SpriteFrame>((resolve) => {assetManager.loadRemote(`${path}`, (error, texture) => {if (!error) {let ImgAsset = texture as ImageAsset;let tex = new Texture2D();tex.image = ImgAsset;let sprite = new SpriteFrame();sprite.texture = tex;// this.spriteLeft.spriteFrame = sprite;// 添加计数器引用sprite.addRef();resolve(sprite);} else {console.log("网络图片加载出错:", error);resolve(null);}})});
}

cocos creator 动态资源卸载: 

页面缓存动态图片的使用:

//记录页面动态加载的图集, 销毁时 释放用
private spriteCacheArray: Array<SpriteFrame>;

使用中途卸载资源:

这里的卸载主要是为了,比如说页面已经关闭了,头像才下载完毕 这个是要 需要现实的 Sprite 已经销毁了,这个时候 直接卸载图片资源!

//clone 是 node 用于显示图片的 prefab 
Helper.webSprite(data['Users'][i]['Icon']).then(spriteFrame => {//正常显示逻辑if (this.spriteCacheArray && spriteFrame && clone) {this.spriteCacheArray.push(spriteFrame);clone.getChildByPath('icon_bg/Mask/default').getComponent(Sprite).spriteFrame = spriteFrame;} else {//页面已经销毁了 不存在要显示的 Sprite. 因为是异步操作 所有执行到这里的时候 节点有可能不在了if (spriteFrame) {spriteFrame.decRef();assetManager.releaseAsset(spriteFrame);}}
});

使用完毕的卸载:

onDestroy() {if (this.spriteCacheArray) {this.spriteCacheArray.forEach(ele => {if (ele) {ele.decRef();assetManager.releaseAsset(ele);}});}
}

http://www.lryc.cn/news/212480.html

相关文章:

  • 好用的API调试工具推荐:Apipost
  • 贪心算法学习——最长单调递增子序列
  • 银行家算法(Python实现)
  • 安装终端 ·Terminator
  • 【Python文件操作的其他例子】
  • 使用Terraform管理已经存在的kubernates和默认的节点池
  • 在HTML当中引入Vue控件,以element-ui为例
  • UE5实现相机水平矫正
  • Word插入Latex语句并编译为数学公式
  • Google Play PolicyBytes 政策更新中文视频 | 2023 年 10 月
  • pytorch-fastrcnn识别王者荣耀敌方英雄血条
  • 阿里云推出通义千问App,提供全方位的协助
  • 深入解析 Spring Framework 中 @Autowired 注解的实现原理
  • 电脑数据文件恢复工具easyrecovery14中文版
  • Android NDK开发详解之Application.mk探秘
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • Golang Web3钱包开发指南
  • Vue使用 IndexDB vue操作IndexDB数据库 Vue操作IndexDB数据库
  • CentOS 安装 Hadoop Local (Standalone) Mode 单机模式
  • jenkins工具系列 —— 删除Jenkins JOB后清理workspace
  • 超越人眼,好用的OCR软件推荐
  • Go语言开发网站
  • 第18章_MySQL8其它新特性
  • Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码)
  • 【操作系统】考研真题攻克与重点知识点剖析 - 第 1 篇:操作系统概述
  • Mac删除照片快捷键ctrl加什么 Mac电脑如何批量删除照片
  • 数据安全认证:保护您的数据安全的关键步骤
  • 表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
  • 【海德教育】报考建筑八大员需要满足下列条件:
  • 酷开科技,让家庭更有温度!