详解CocosCreator项⽬结构机制
⽬录
⼀、项⽬⽂件夹结构
1.资源⽂件夹(assets)
2.资源库(library)
3.本地设置(local)
4.扩展插件⽂件夹(packages)
5.项⽬设置(settings)
6.临时⽂件夹(temp)
7.project.json
8.构建⽬标(build)
9.版本控制
⼆、资源管理注意事项 --- meta ⽂件
1. meta ⽂件的作⽤
2. meta ⽂件更新时机
三、uuid 变化
⼀、项⽬⽂件夹结构
初次创建并打开⼀个 Cocos Creator 项⽬后,开发者的项⽬⽂件夹将会包括以下结构:
下⾯我们将会介绍每个⽂件夹的功能。
1.资源⽂件夹(assets)
assets 将会⽤来放置游戏中所有的本地资源、脚本和第三⽅库⽂件。只有在 assets ⽬录下的内容才能显⽰在资源管理器中。assets 中的每个⽂件在导⼊项⽬后都会⽣成⼀个相同名字的 .meta ⽂件,⽤于存储对应的资源配置和索引信息。.meta ⽂件需要⼀并提交到版本控制系统,详见资源管理注意事项 --- m
eta ⽂件。
⼀些第三⽅⼯具⽣成的⼯程或设计原⽂件,如 TexturePacker 的 .tps ⽂件,或 Photoshop 的 .psd ⽂件,可以选择放在 assets 外⾯来管理。
2.资源库(library)
library 是将 assets 中的资源导⼊后⽣成的,在这⾥⽂件的结构和资源的格式将被处理成最终游戏发布时需要的形式。当library 丢失或损坏的时候,只要删除整个 library ⽂件夹再打开项⽬,就会重新⽣成资源库。
3.本地设置(local)
local ⽂件夹中包含该项⽬的本机上的配置信息,包括编辑器⾯板布局,窗⼝⼤⼩,位置等信息。开发者不需要关⼼这⾥的内容。
4.扩展插件⽂件夹(packages)
packages ⽂件夹⽤于放置此项⽬的⾃定义扩展插件。如需⼿动安装扩展插件,可以⼿动创建此⽂件夹。如需卸载扩展插件,在 packages 中删除对应的⽂件夹即可。
5.项⽬设置(settings)
settings ⾥保存项⽬相关的设置,如构建发布菜单⾥的包名、场景和平台选择等。cocos creator面试题
6.临时⽂件夹(temp)
temp 是临时⽂件夹,⽤于缓存⼀些 Cocos Creator 在本地的临时⽂件。这个⽂件夹可以在关闭 Cocos Creator 后⼿动删除,开发者不需要关⼼这⾥⾯的内容。
7.project.json
project.json ⽂件和 assets ⽂件夹⼀起,作为验证 Cocos Creator 项⽬合法性的标志,只有包括了这两个内容的⽂件夹才能作为 Cocos Creator 项⽬打开。开发者不需要关⼼⾥⾯的内容。
8.构建⽬标(build)
在使⽤主菜单中的项⽬ -> 构建发布... 使⽤默认发布路径发布项⽬后,编辑器会在项⽬路径下创建 build ⽬录,并存放所有⽬标平台的构建⼯程。
9.版本控制
Cocos Creator 在新建项⽬时,会⾃动⽣成 .gitignore ⽂件,⽤于排除不应该提交到 git 仓库的⽂件。如果开发者使⽤其它版本控制系统,或者需要提交项⽬到其它地⽅,应该注意只需要提交 assets、packages、settings、project.json,或其它⼿动添加的关联⽂件。
⼆、资源管理注意事项 --- meta ⽂件
理解 Creator ⽣成 meta ⽂件的作⽤和机理,能帮助您和您的团队解决在多⼈开发时常会遇到的资源冲突、⽂件丢失、组件属性丢失等问题。那 meta ⽂件是做什么⽤的呢?下⾯我们来了解⼀下。
1. meta ⽂件的作⽤
先来看下场景中的 meta ⽂件长什么样⼦:
预制件的 meta ⽂件与场景是⼀样的。png 图⽚的 meta ⽂件信息⽐较多,除了基本的 ver 和 uuid 外,还记录了图⽚的宽⾼、偏移、九宫格等数据。上⾯这么多信息,我们这⾥只关⼼⼀个:uuid。uuid : 通⽤唯⼀标识符(Universally Unique Identifier) uuid 是 Creator ⽤来管理游戏资源的。它会为每个⽂件分配⼀个唯⼀的 id,图集会⽣成多个。由此可以了解在 Creator 引擎中,识别⼀个⽂件不是简单地通过路径 + ⽂件名定位,⽽是通过 uuid 来引⽤⽂件。因此可以在编辑器资源管理中,随意删除、移动⽂件。
2. meta ⽂件更新时机
Creator ⽣成 meta ⽂件有以下⼏种情况:
1、打开⼯程时打开项⽬⼯程时,Creator 会先扫描 assets ⽬录,如果哪个⽂件还没有 meta ⽂件,此时就会⽣成。
2、更新资源时更新资源也会引发 meta ⽂件的更新:
在资源管理器中可以对资源进⾏⽂件名修改、改变⽬录、删除⽂件,添加⽂件等操作,请参考资源管理器。也可以直接从桌⾯或操作系统的⽂件管理器中将⽂件拖⼊到【资源管理器】中。还有⼀种情况是在操作系统的⽂件管理器中对 assets ⽬录中的⽂件进⾏增、删、改之后切换到编辑器界⾯,此时可以看到资源管理器刷新的过程。如果⼀个⽂件的 meta ⽂件不存在,上⾯两种情况都会触发引擎去⽣成 meta ⽂件。
3. meta ⽂件出错的⼏种情况及解决⽅法下⾯我们分析下 meta ⽂件出错的⼏种可能情况。uuid 冲突 uuid 是全局唯⼀的,产⽣冲突肯定是有不同的⽂件的 uuid 相同了,⼀旦出现这个问题会导致 Cocos Creator 资源管理器⽬录结构加载不完整。如下图所⽰,遇到这种情况估计会让你吓出⼀⾝冷汗:
从提⽰中可以看到冲突的 uuid 字符串,然后打开操作系统⽂件管理或代码编辑器,搜索这个 uuid:
此时先关闭 Creator 编辑器,再任意删除其中⼀个 meta ⽂件,然后再打开 Creator 编辑器就可以解决。
这种⽅法虽然可以解决问题,但在编辑器中引⽤到这个资源的地⽅将会出现资源丢失,需要重新编辑或者重新配置⼀次。最好是通过版本管理⼯具还原此 meta ⽂件。出现这种问题的原因⼀般有以下两个:在操作系统的⽂件管理器中移动⽂件时,将剪切、粘贴不⼩⼼操作成了复制、粘贴,同时也把 meta ⽂件复制过去了。导致项⽬中同时出现两个相同的 meta ⽂件。在多⼈协作时,从版本管理⼯具中,更新资源时碰巧遇到别⼈⽣成的 uuid 与你的电脑上某个⽂件⽣成的 uuid ⼀样了,但这种情况⾮常⾮常罕见。总的来说,要减少 uuid 冲突发⽣,最好在引擎资源管理⼯具中进⾏添加、移动⽂件。
三、uuid 变化
还有⼀种情况是 uuid 变了,使得旧的 uuid 对应的资源⽆法到,这样的话,你曾经编辑的界⾯将会出现资源、图⽚丢失,还
可能出现组件属性丢失。
如果不到旧的 uuid 对应的资源,通过控制台可以看到 Creator 给出了所在的场景⽂件名、节点路径、组件、uuid 等⾮常详细的警告信息。通过警告信息可以快速定位出错的地⽅。这种情况⼜是怎么造成的呢?当有⼀个⼈将新资源添加进项⽬时,忘记切换到编辑器界⾯使其⽣成 meta ⽂件,同时⼜将这些新增的⽂件提交到了版本管理中(不包含 meta ⽂件)。然后,有另⼀个⼈去更新了他所提交的资源,同时切换到了编辑器界⾯进⾏编辑,这时 Creator 会检查到新资源没有 meta ⽂件便会⽴即⽣成。⽽当第⼀个
⼈切换到编辑器的时候也会⽣成 meta ⽂件,这样两个⼈的电脑上为同⼀个⽂件,但是⽣成的 meta ⽂件中的uuid 都不相同。这种情况下,后⾯进⾏资源提交或更新的⼈,肯定也会遇到冲突,如果不明就理就强⾏解决冲突,就会产⽣上⾯所说的问题。下⾯的时序图就描述了这种错误的⼯作流程:
因为第⼀个 A 同学忘记⽣成 meta ⽂件并提交,之后其他⼈都编辑过项⽬,但每个⼈⽣成的 uuid 都不同,这样就会陷⼊⽆限的资源出错中,编辑好的东西,⼀提交更新⼜出现冲突了。
要解决这个问题注意下⾯⼏点:l提交前检查是否有新增⽂件,有新增⽂件时,注意是否有 meta ⽂件,需要⼀起提交;l拉取⽂件时,注意是否有新增⽂件,并且是有 meta ⽂件成对,如果没有的话,提醒之前提交⽂件的同学,把 meta ⽂件⼀并提交;l提交时,如果发现只有新增的 meta ⽂件,那这个 meta ⽂件肯定是⾃⼰⽣成的,需要注意是否使⽤过这个 meta ⽂件对应的资源(同名⽂件)。如果没⽤过,那请最早提交者把 meta ⽂件提交了。千万不能将这个 meta ⽂件提交上去。注意上⾯⼏点基本上就可以杜绝 meta ⽂件 uuid 变化导致的⼯程出错了。
⼩结:meta ⽂件是 Creator ⽤于资源管理的重要⼿段,但在多⼈协同开发中稍有不慎就容易产⽣资源错误。要解决这个问题,不仅需要理解 meta ⽂件的产⽣机制和导致冲突的原因,同时还应该规范资源提交流程。
以上就是详解CocosCreator项⽬结构机制的详细内容,更多关于CocosCreator项⽬结构机制的资料请关
注其它相关⽂章!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论