前面的话

  本文将详细介绍 cocos 中的资源工作流程

概述

【同步性】

  资源管理器中的资源和操作系统的文件管理器中看到的项目资源文件夹是同步的

  在资源管理器中对资源的移动、重命名和删除,都会直接在用户的文件系统中对资源文件进行同步修改。同样的,在文件系统中(如 Windows 上的 Explorer 或 Mac 上的 Finder)对添加或删除资源,再次打开或激活 Cocos Creator 程序后,也会对资源管理器中的资源进行更新

【meda文件】

  所有 assets 路径下的资源都会在导入时生成一份资源配置文件(.meta),这份配置文件提供了该资源在项目中的唯一标识(uuid)以及其他的一些配置信息(如图集中的小图引用,贴图资源的裁剪数据等),非常重要

  在编辑器中管理资源时,meta 文件是不可见的,对资源的任意删除、改名、移动操作,都会由编辑器自动同步相应的 meta 文件,确保 uuid 的引用不会丢失和错乱

  注意在编辑器外部的文件系统中(Explorer,Finder)对资源文件进行删除、改名、移动时必须同步处理相应的 meta 文件。资源文件和其对应的 meta 文件应该保持在同一个目录下,而且文件名相同

  如果在编辑器外部的文件系统中(Explorer,Finder等)进行了资源文件的移动或重命名,而没有同步移动或重命名 meta 文件时,会导致编辑器将改名或移动的资源当做新的资源导入,可能会出现场景和组件中对该资源(包括脚本)的引用丢失

  在编辑器发现有未同步的资源配置文件时,会弹窗警告用户,并列出所有不匹配的 meta 文件。这时无法正确匹配的资源配置文件会从项目资源路径(asset)中移除,并自动备份到 temp 路径下

  如果希望恢复这些资源的引用,将备份的 meta 文件复制到已经移动过的资源文件同一路径下,并保证资源文件和 meta 文件的文件名相同

  注意编辑器在处理资源改名和移动时会生成新的 meta 文件,这些新生成的 meta 文件可以在恢复备份的 meta 后安全删除

图像资源

  图像资源经常被称作贴图、图片,是游戏中绝大部分图像渲染的数据源。图像资源一般由图像处理软件(如 PS )制作而成并输出成 Cocos Creator 可以使用的文件格式,目前包括 JPG 和 PNG 两种

  图像资源在资源管理器中以自身图片的缩略图作为图标。在资源管理器中选中图像资源后,属性检查器下方会显示该图片的缩略图

【SpriteFrame】

  在资源管理器中,图像资源的左边会显示一个和文件夹类似的三角图标,点击就可以展开看到它的子资源(sub asset),每个图像资源导入后编辑器会自动在它下面创建同名的 SpriteFrame 资源

  SpriteFrame 是核心渲染组件 Sprite 所使用的资源,设置或替换 Sprite 组件中的 spriteFrame 属性,就可以切换显示的图像

  为什么会有 SpriteFrame 这种资源?这样的设置是因为除了每个文件产生一个 SpriteFrame 的图像资源(Texture)之外,还有包含多个 SpriteFrame 的图集资源(Atlas)类型

  直接将 SpriteFrame 或图像资源从资源管理器中拖拽到层级管理器或场景编辑器中,就可以直接用所选的图像在场景中创建 Sprite 节点。之后可以拖拽其他的 SpriteFrame 或图像资源到该 Sprite 组件的 Sprite Frame 属性栏中,来切换该 Sprite 显示的图像

  导入图像资源后生成的 SpriteFrame 会进行自动剪裁,去除原始图片周围的透明像素区域。这样在使用 SpriteFrame 渲染 Sprite 时,将会获得有效图像更精确的大小

预制资源

  在场景中编辑好节点后,直接将节点从层级管理器拖到资源管理器,即可创建出一个预制(prefab)

  在场景中修改了预制实例后,在属性检查器中直接点击保存,即可保存对应的预制资源

  在场景中修改了预制实例后,在属性检查器中直接点击回退,即可将预制对象还原为资源中的状态

  每个场景中的预制实例都可以选择要自动同步和还是手动同步。设为手动同步时,当预制对应的原始资源被修改后,场景中的预制实例不会同步刷新,只有在用户手动还原预制时才会刷新;设为自动同步时,该预制实例会自动和原始资源保持同步

图集资源

  图集(Atlas)也称作 Sprite Sheet,是游戏开发中常见的一种美术资源。图集是通过专门的工具将多张图片合并成一张大图,并通过 plist 等格式的文件索引的资源。可供 Cocos Creator 使用的图集资源由 plist 和 png 文件组成

  在游戏中使用多张图片合成的图集作为美术资源,有以下优势:

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

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

  要生成图集,首先应该准备好一组原始图片,接下来可以使用专门的软件(texturepacker 或者 Zwoptex)生成图集,使用这些软件生成图集时选择 cocos2d-x 格式的 plist 文件。最终得到的图集文件是同名的 plist 和 png,将 plist 和 png 文件同时拖拽到资源管理器中,就可以生成可以在编辑器和脚本中使用的图集资源了

【自动图集】

  自动图集资源是 Cocos Creator 自带的合图功能,可以将指定的一系列碎图打包成一张大图,在资源管理器中右键,可以在如下菜单中找到 新建 -> 自动图集配置 的子菜单,点击菜单将会新建一个类似 AutoAtlas.pac 的资源,自动图集资源将会以当前文件夹下的所有 SpriteFrame 作为碎图资源。 如果碎图资源 SpriteFrame 有进行配置过,在打包后重新生成的 SpriteFrame 将会保留这些配置

艺术数字资源

  艺术数字资源是一种用户自定义的资源,它可以用来配置艺术数字字体的属性。在资源管理器中右键,可以在如下菜单中找到 新建 -> 艺术数字配置 的子菜单,点击菜单将会新建一个类似 LabelAtlas.labelatlas 的资源。艺术数字资源在使用之前需要进行一些配置,比如关联渲染的图片资源,设置每一个字符的宽高和起始字符信息

  在资源管理器中选中一个艺术数字资源后,属性检查器面板将会显示艺术数字资源的所有可配置项,配置完成后需要点击属性检查器右上角的绿色的打勾按钮来保存设置

  使用艺术数字资源非常简单,只需要新建一个 Label 组件,然后把新建好的艺术数字资源拖到 Label 组件的 Font 属性即可

字体资源

  使用 Cocos Creator 制作的游戏中可以使用三类字体资源:系统字体,动态字体和位图字体

  系统字体是通过调用游戏运行平台自带的系统字体来渲染文字,不需要用户在项目中添加任何相关资源。要使用系统字体,需要使用Label组件中的 Use System Font 属性

  目前 Cocos Creator 支持 TTF 格式的动态字体。只要将扩展名为 TTF 的字体文件拖拽到资源管理器中,即可完成字体资源的导入

  位图字体由 fnt 格式的字体文件和一张 png 图片组成,fnt 文件提供了对每一个字符小图的索引。这种格式的字体可以由专门的软件生成

  在导入位图字体时,需要将 fnt 文件和 png 文件同时拖拽到资源管理器中

  字体资源需要通过 Label 组件来渲染,在层级管理器中点击左上角的创建节点按钮,并选择创建渲染节点/Label(文字),就会在场景中创建出一个带有 Label 组件的节点。也可以通过主菜单的节点/创建渲染节点/Label(文字)来完成创建,效果一样

  字体组件默认使用系统字体作为关联的资源,如果想要使用导入到项目中的 TTF 或位图字体,可以将字体资源拖拽到创建的 Label 组件中的 File 属性栏中

  可以根据项目需要,自由的切换同一个 Label 组件的 File 属性,来使用 TTF 或位图字体。切换字体文件时,Label 组件的其他属性不受影响

  如果要恢复使用系统字体,可以点击 Use System Font 的属性复选框,来清除 File 属性中指定的字体文件

cocos 资源工作流程的更多相关文章

  1. CocosCreator资源工作流程

    --摘自官方文档 资源工作流程 添加资源 资源管理器 提供了三种在项目中添加资源的方式: 通过 创建按钮 添加资源 在操作系统的文件管理器中,将资源文件复制到项目资源文件夹下,之后再打开或激活 Coc ...

  2. cocos 场景制作流程

    前面的话 本文将详细介绍 cocos 场景制作流程 节点和组件 Cocos Creator 的工作流程是以组件式开发为核心的,组件式架构也称作组件-实体系统,简单的说,就是以组合而非继承的方式进行实体 ...

  3. Spark基本工作流程及YARN cluster模式原理(读书笔记)

    Spark基本工作流程及YARN cluster模式原理 转载请注明出处:http://www.cnblogs.com/BYRans/ Spark基本工作流程 相关术语解释 Spark应用程序相关的几 ...

  4. git工作流程

    git工作流程 一般工作流程如下: 克隆 Git 资源作为工作目录. 在克隆的资源上添加或修改文件. 如果其他人修改了,你可以更新资源. 在提交前查看修改. 提交修改. 在修改完成后,如果发现错误,可 ...

  5. ARP协议工作流程

    地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机, ...

  6. Hadoop随笔(一):工作流程的源码

    一.几个可能会用到的属性值 1.mapred.map.tasks.speculative.execution和mapred.reduce.tasks.speculative.execution 这两个 ...

  7. 前端工作流程自动化——Grunt/Gulp 自动化

    什么是自动化 先来说说为什么要自动化.凡是要考虑到自动化时,你所做的工作必然是存在很多重复乏味的劳作,很有必要通过程序来完成这些任务.这样一来就可以解放生产力,将更多的精力和时间投入到更多有意义的事情 ...

  8. yarn的基本组成和工作流程

    yarn是负责资源管理的,协调各个应用程序的资源使用情况 一.基本组成 yarn主要由以下几个部分组成 1.resourcemanager 主要负责资源的调度和应用程序的管理 (1)调度器 调度器是将 ...

  9. springmvc工作流程

    Spring MVC工作流程图   图一   图二    Spring工作流程描述       1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServle ...

随机推荐

  1. sql小知识点

    1]sql去重复 select * from View where SfzId in ())

  2. 一个.Net网站的成长历程

    引言: 时光匆匆,如白驹过隙,又一次来到了这个节点,回首逝去的日子,有收获也有遗憾... 年底的日子总是那么悠闲,趁着这些悠闲的时光,整理一下自己平时在工作中的收获. 之所以取这个标题呢一来是为了让自 ...

  3. C#的一些获取时间的例子

    从周一到周日的顺序,获取排序数值: int i = DateTime.Now.DayOfWeek - DayOfWeek.Monday; if (i == -1) i = 6; 获取某日起,星期一日期 ...

  4. 阿里、百度等多家公司Java面试记录与总结

    算算自己大概面试了近十家公司,也拿到了几个Offer,现在面试告一段落,简单总结下面试经验. 我现在主要的方向是Java服务端开发,把遇到的问题和大家分享一下,也谈谈关于技术人员如何有方向的提高自己, ...

  5. RxJava2.0入门篇

    传统用法:开启子线程去做耗时任务,业务逻辑越复杂,代码嵌套越严重,Rx系列出来很久了,想自己做一个总结,希望能帮到一部分人 观察者模式先提一嘴 这个老模式简直不想说太多,就说一下流程 1创建被观察者 ...

  6. WebSocket-java实践

    websocket  主要用于  前端页面hmtl/jsp 与 后端进行socket得连接. 本例简单实现:一但后端接收到数据或者根据某些规则主动发送数据,那么可以根据不同用户等区别,发送给某个登陆得 ...

  7. Kali Linux入坑之基本配置(2018.1)

    我在?天前就决心如Kali的坑,然而安装kali呀vm tools呀更新呀弄了好几天.期间出现的各种问题在此汇总一下. 1.Kali的安装版本选择 在官网上看到的这么多Kali版本应该怎么选呢,在网上 ...

  8. Win7环境 搭建IIS环境。发布asp.net MVC项目到IIS(第二期)

    在IIS环境中给发布项目修改域名,192.168.1.1:8081  ---->> www.preject.com 一.在网站主页中,1找到绑定网站.2编辑. 二.修改网站配置参数. 三. ...

  9. C#自定义控件添加到工具箱

    1.在需要使用这个自定义控件的项目中,在引用中,右键,添加引用,浏览,找到dll(如:ComButton.dll),进行添加,这时候,控件应该是能够自动添加到工具箱的. 2.在Visual Studi ...

  10. 西湖论剑2019复现-Web之首家线上赌场上线啦

    首页打开 经过测试发现name和code参数可控,但尝试注入没有发现注入点,于是直接扫描目录找思路 一扫描,果然有问题 目录扫描里面可以看到有一个/.DS_Store的文件,DS_Store是Mac ...