自学 Cocos JS 之 资源加载的那点事

boyanx2个月前技术教程8

这期的内容应该更偏向于程序。

个人认为Cocos Creator对资源的加载分为两种:静态加载和动态加载。

静态加载

所谓静态加载,说白了就是直接在Creator编辑器里拖拖拉拉,给各种节点托入图片,声音,预制体(prefab),动画,脚本等资源。

优点是:

  • 简单,可以直接产出
  • 所见即所得
  • 不需要管理资源的加载和释放,一切交给系统

缺点是:

  • 不能动态更改资源
  • 一旦把所有资源都预先挂在节点上,内存开销会增加
  • 流程会变的复杂,如果更改(添加,删除,修改)了一个资源就要在编辑器操作一下,复杂的流程会增加出错的概率,增加定位BUG的难度

上图中脚本ConfigMgr的作用是在游戏启动的时候将所有Json配置表一次性加载到游戏中,所有Scene通用。

动态加载

所谓动态加载,就是UI布局上只留一个节点(可以有资源也可以没有资源),通过代码在需要添加/更改资源的时候加载资源。

优点是:

  • 节省内存,在需要资源的时候加载对应的资源
  • 定位BUG简单,直接调试就能找到问题所在

缺点是:

  • 需要通过编码实现
  • 不仅要处理加载,还要处理卸载
  • 不能所见即所得

上图是动态加载龙骨的一个测试用例

  1. 新建场景,添加名为hero的空节点用来存放主角
  2. hero节点添加DragonBones组件
  3. 场景Canvas挂Player脚本
  4. 把hero节点拖到Player脚本中,赋值给PlayerDragonBone变量

上图就是Player.js脚本的内容

上图是浏览器中运行的效果图。

注意事项

需要动态加载的资源,

必须将资源放在assets/resources/下

必须将资源放在assets/resources/下

必须将资源放在assets/resources/下

重要的事情说三遍,我就是因为路径问题折腾了一天时间。

结语

对资源的加载一定要合理运用

就比如Player.js脚本,不应该把资源的名称写在代码里,应把资源名放在Json里,然后通过ConfigMgr.js查找对应的配置读取出来。静态读配置动态加载资源。

只有合理运用资源的静/动态加载才能实现收益的最大话。

标签: aplayer.js

相关文章

我的世界指令大全 minecraft常用命令汇总

在我的世界中玩家可以通过输入我的世界指令来改变游戏中的一些内容,这次搞趣网小编就为诸位我的世界玩家带来MC我的世界指令大全,常用命令汇总。希望诸位玩家喜欢这篇我的世界指令大全,minecraft常用命...

Node-Media-Server开源流行Nodejs流媒体服务器

简介Node-Media-Server一个 Node.js 实现的RTMP/HTTP/WebSocket/HLS/DASH流媒体服务器。开源github地址:https://github.com/il...

JSONP安全攻防技术

关于JSONPJSONP全称是JSON with Padding,是基于JSON格式的为解决跨域请求资源而产生的解决方案。它的基本原理是利用HTML的元素标签,远程调用JSON文件来实现数据传递。如果...

LibreTV开源方案挑战传统视频托管,无服务器架构...

LibreTV 是一款轻量级、开源免费的在线视频搜索与观看平台,提供来自多个视频源的内容搜索与播放服务。通过智能整合多源视频接口,为用户提供即点即播的流畅体验。作为 bestK/tv 项目的重构增强版...

我的世界死亡次数统计板制作攻略

小编今天给大家带来我的世界死亡次数统计板制作攻略,我的世界死亡次数统计板怎么制作呢?希望这篇我的世界死亡次数统计板制作攻略能够帮助到大家!计分板的用途:计分板系统可以统计玩家的死亡次数deathCou...

推荐 9 个 yyds 前后端分离项目

前后端分离是现在主流的架构设计模式,它初衷是用「单一职责」原则把代码质量提上去从而达到节省人力和减少沟通时的信息损失的目的。本文推荐九个前后端分离的开源项目,都是采用最流行的技术栈。本文推荐的开源项...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。