您的位置:首页 > 移动开发 > Cocos引擎

学习笔记 2_Cocos Creator_资源工作流程

2018-01-26 17:08 573 查看

创建和管理场景

1、场景资源自动释放

cc.loader.release


属性检查器 中设置“自动释放资源”选项,该项默认关闭

2、防止特定资源被自动释放

当场景切换后,如果场景已设置
自动释放资源资源
,可以使用
cc.loader.setAutoRelease
或者
cc.loader.setAutoReleaseRecursively
来保留这些资源

3、不延迟加载资源

全部加载完成后才会触发场景切换

4、延迟加载依赖的资源

加载场景时,如果选项开启,则这个场景直接或间接依赖的所有贴图、粒子和声音都将被延迟到场景切换后才加载,使场景切换速度极大提升

图像资源(Texture)

1、目前包括 JPG 和 PNG 两种

预制资源(Prefab)

1、设为手动同步时

当预制对应的原始资源被修改后,场景中的预制实例不会同步刷新,只有在用户手动还原预制时才会刷新。

2、设为自动同步

该预制实例会自动和原始资源保持同步

3、预置的选项

自动调整(默认):

设为这个选项后,引擎将根据创建次数自动调整优化策略。初次创建实例时,等同于“优化单次创建性能”,多次创建后将自动“优化多次创建性能”。

优化单次创建性能:

该选项会跳过针对这个 prefab 的代码生成优化操作。

优化多次创建性能:

该选项会启用针对这个 prefab 的代码生成优化操作。

图集资源(Atlas)

1、为什么要使用图集资源

合成图集时会去除每张图片周围的空白区域,加上可以在整体上实施各种优化算法,合成图集后可以大大减少游戏包体和内存占用

多个 Sprite 如果渲染的是来自同一张图集的图片时,这些 Sprite 可以使用同一个渲染批次来处理,大大减少 CPU 的运算时间,提高运行效率。

2、图集制作软件

TexturePacker

Zwoptex

3、将以前碎图 -> 图集 方法

目前我们提供了一个简单的小工具来完成场景中对图片资源引用从碎图或老图集到新图集的重定向。下面介绍工作流程。

生成新图集:不管是从碎图合并,还是将原来的图集重新拆分或合并,您都需要先使用 TexturePacker 生成完整的新图集。然后将新图集导入到项目资源文件夹中。

双击打开您需要重定向资源引用的场景或 Prefab

点击主菜单的「开发者->在当前场景使用指定图集替换 spriteFrame…」,在打开的对话框里选择您新生成的图集,等待替换操作完成。(如果新图集有多张,应该重复这一步直到所有相关新图集都替换完毕) 4.如果您有多个场景或 prefab,需要重复执行 2-3 步,遍历每个相关的场景或 Prefab

确认所有相关图片资源的引用都已经替换成了新图集后,现在可以删除原有的碎图或旧图集了。

字体资源

1、三类字体资源

系统字体 :使用Label组件中的 Use System Font 属性

动态字体 :TTF 格式

位图字体 :

位图字体由 fnt 格式的字体文件和一张 png 图片



2、位图字体生产工具

Glyph Designer

Hiero

BMFont (Windows)

粒子资源(ParticleSystem)

声音资源

1、加载模式

音频的加载方式只影响 Web 上的加载效果 由于各个 Web 平台实现标准的进度不一致,所以提供了两种声音资源的加载方式。

WebAudio

通过 WebAudio 方式加载的声音资源,在引擎内是以一个 buffer 的形式缓存的。

这种方式的优点是兼容性好,问题比较少。缺点是占用的内存资源过多。

DOM Audio

通过生成一个标准的

使用标准的 audio 元素播放声音资源的时候,在某些浏览器上可能遇到一些限制。

比如:每次播放必须是用户操作事件内才允许播放(WebAudio 只要求第一次),只允许播放一个声音资源等。

2、手动选择按某种解析方式加载音频

有时候我们可能不会使用场景的自动加载或是预加载功能,而是希望自己手动控制 cc.load 资源的加载流程。 这个时候我们也是可以通过音频资源的 url 来选择加载的方式。

默认方式加载音频

音频默认是使用 webAudio 的方式加载并播放的,只有在不支持的浏览器才会使用 dom 元素加载播放。

cc.loader.load(cc.url.raw(‘resources/background.mp3’), callback);

强制使用 dom element 加载

  1.在资源管理器内选中一个 audio,属性检查器内会有加载模式的选择

  2.音频在加载过程中,会读取 url 内的 get 参数。其中只需要定义一个 useDom 参数,使其有一个非空的值,这样在 audioDownloader 中,就会强制使用 DOM element 的方式加载播放这个音频。

cc.loader.load(cc.url.raw(‘resources/background.mp3?useDom=1’), callback);

骨骼动画资源(Spine)

1、导入骨骼动画资源
 骨骼动画所需资源有:

.json 骨骼数据

.png 图集纹理

.txt/.atlas 图集数据

2、创建骨骼动画资源

方法之一 :
添加组件
,然后
添加渲染组件
选择
Spine Skeleton


PS:集成Spine功能,不需要额外添加插件



瓦片图资源(TiledMap)

1、导入地图资源

 地图所需资源有:

.tmx 地图数据

.png 图集纹理

.tsx tileset 数据配置文件(部分 tmx 文件需要)

2、创建瓦片图资源

方法之一 :
添加组件
,然后
添加渲染组件
选择
TiledMap


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: