CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用
我们通过Dashboard 创建一个2d项目,来演示CocosCreator 的项目结构。


等待创建完成后,会得到以下项目工程:

一、assets文件夹
assets文件夹:为资源目录,用来存储所有的本地资源,如各种图片,脚本资源。
只有在这个目录下的内容才会显示在cocos编辑器的资源管理器中。
其中非常重要的一点,assets 中每个文件在导入后都会生成一个和文件同名的.meta 文件。
1、meta 文件的作用
理解 meta 文件的作用和更新时机,对于我们在解决资源冲突、文件丢失、组件属性丢失等问题时,有非常重要的意义。
例如,我们在cocos 编辑器的资源管理器中,创建一个名字为script 的文件夹, 用于存储脚本文件。

创建完成后得到会生成一个和文件同名的script.meta 文件:

script.meta 文件内容:
包含 ver (版本)、 uuid(唯一id) 、importer (资源类型)等参数。

我们再来导入一张图片资源:

图片资源生成的meta文件内容比较多,除了基本的 ver 和 uuid 等信息外,还记录了图片的尺寸、偏移、九宫格等数据。
如下:
{"ver": "1.0.26","importer": "image","imported": true,"uuid": "dadcda60-4fe7-4bdb-86cd-46dbf91c97d4","files": [".jpg",".json"],"subMetas": {"6c48a": {"importer": "texture","uuid": "dadcda60-4fe7-4bdb-86cd-46dbf91c97d4@6c48a","displayName": "20230816090210","id": "6c48a","name": "texture","userData": {"wrapModeS": "clamp-to-edge","wrapModeT": "clamp-to-edge","imageUuidOrDatabaseUri": "dadcda60-4fe7-4bdb-86cd-46dbf91c97d4","isUuid": true,"visible": false,"minfilter": "linear","magfilter": "linear","mipfilter": "none","anisotropy": 0},"ver": "1.0.22","imported": true,"files": [".json"],"subMetas": {}},"f9941": {"importer": "sprite-frame","uuid": "dadcda60-4fe7-4bdb-86cd-46dbf91c97d4@f9941","displayName": "20230816090210","id": "f9941","name": "spriteFrame","userData": {"trimType": "auto","trimThreshold": 1,"rotated": false,"offsetX": 0,"offsetY": 0,"trimX": 0,"trimY": 0,"width": 900,"height": 1100,"rawWidth": 900,"rawHeight": 1100,"borderTop": 0,"borderBottom": 0,"borderLeft": 0,"borderRight": 0,"packable": true,"pixelsToUnit": 100,"pivotX": 0.5,"pivotY": 0.5,"meshType": 0,"vertices": {"rawPosition": [-450,-550,0,450,-550,0,-450,550,0,450,550,0],"indexes": [0,1,2,2,1,3],"uv": [0,1100,900,1100,0,0,900,0],"nuv": [0,0,1,0,0,1,1,1],"minPos": [-450,-550,0],"maxPos": [450,550,0]},"isUuid": true,"imageUuidOrDatabaseUri": "dadcda60-4fe7-4bdb-86cd-46dbf91c97d4@6c48a","atlasUuid": ""},"ver": "1.0.12","imported": true,"files": [".json"],"subMetas": {}}},"userData": {"type": "sprite-frame","fixAlphaTransparencyArtifacts": true,"hasAlpha": false,"redirect": "dadcda60-4fe7-4bdb-86cd-46dbf91c97d4@f9941"}
}
上面这么多信息中,我们只需要关心:UUID
UUID 是每个文件唯一的 id,Creator 引擎通过 UUID 来引用文件, 实现游戏资源管理。
2、.meta 文件更新时机
(1)、打开工程时
打开工程时,Creator 会先扫描 assets 目录,如果哪个文件还没有 meta 文件,此时就会生成。
(2)、更新资源时
- 在资源管理器中对资源进行文件名修改、改变目录、添加文件、删除文件时。
- 在操作系统的文件管理器中对 assets 目录中的文件进行增、删、改后,切换到编辑器界面时。
如果一个文件或者目录的 meta 文件不存在,上面两种情况都会触发引擎去生成新的meta 文件。
3、.meta 文件出错时的解决办法
(1)、UUID 发生变化问题
这种情况,一般在多人协作时,经常会出现。 当UUID 发生变化,会使旧的 UUID 对应的资源无法找到, 编辑的界面会出现资源、图片丢失,还可能出现组件属性丢失的情况。
如图:

UUID 发生变化原因:
前面一个人将新资源添加进项目,忘记切换到编辑器界面使其生成 meta 文件,同时又将新增的文件提交到了版本管理中(不包含 meta 文件)。
后面另一个人,去更新了前面一个人所提交的资源,同时切换到了编辑器界面进行编辑, Creator 会检查到新资源没有 meta 文件便会立即生成。
当第一个人切换到编辑器的时候也会生成 meta 文件,这样两个人的电脑上为同一个文件,但是生成的 meta 文件中的 UUID 都不相同。
这样后面进行资源提交或更新的人,肯定也会遇到冲突。
UUID 发生变化的解决办法和注意事项:
- 提交前检查是否有新增文件,有新增文件时,注意是否有 meta 文件,没有meta 文件 一定要重新打开cocos 编辑器,生成新的meta文件,然后再一起提交。
- 提交时如果发现只有新增的 meta 文件,那这个 meta 文件肯定是自己生成的,需要查看是否使用过这个 meta 文件对应的资源。如果没用过,那请最早提交者把 meta 文件提交了。此时千万不能将这个 meta 文件提交上去。**
- 拉取文件时,注意是否有新增文件,并且是有 meta 文件成对,如果没有的话,提醒之前文件提交者,把 meta 文件一并提交。
(2)、UUID 冲突问题
UUID 是全局唯一的,产生冲突肯定是有不同的文件的 UUID 相同了,一旦出现这个问题,会导致 Cocos Creator 资源管理器目录结构加载不完整。
UUID 冲突问题原因:UUID 冲突一般是误操作引起。
比如在操作系统的文件管理器中移动文件时,将剪切、粘贴不小心操作成了复制、粘贴,同时也把 meta 文件复制过去了。导致项目中同时出现两个相同的 meta 文件。

从上图提示中可以看到冲突的 UUID 字符串。
UUID 冲突解决办法:
第一步,打开操作系统文件管理或代码编辑器,搜索冲突的UUID,如图:

第二步,关闭Cocos Creator 编辑器,然后任意删除其中一个 meta 文件。
第三步,再重新打开 Creator 编辑器即可解决。
第四步,虽然通过上面三步,解决了目录结构加载不完整的问题。但是编辑器引用到这个资源的地方就会出现资源丢失,所以还得需要重新编辑或者重新配置一次资源。
为了避免 UUID 冲突发生,最好在引擎资源管理工具中进行添加、移动文件。
二、library文件夹
library 是将 assets 中的资源导入后生成的,这里文件的结构和资源的格式将被处理成最终游戏发布时需要的形式。
当 library 丢失或损坏的时候,只要删除整个 library 文件夹再打开项目,就会重新生成资源库。

三、构建目标(build)
在使用编辑器主菜单中的 项目 -> 构建发布 使用默认发布路径发布项目后,编辑器会在项目路径下创建 build 目录,并存放所有目标平台的构建工程。
例如,我们构建一个 web手机端的工程。




四、编辑器配置目录(profiles)
profiles 文件夹中包含编辑器的配置信息,包括各目标平台的构建配置信息、场景配置信息等


五、项目设置目录(settings)
settings 文件夹保存项目相关的设置,如项目设置面板中的配置信息。

六、临时文件夹(temp)
temp 顾名思义,是临时文件夹,用于缓存 Cocos Creator 在本地的临时数据文件,可在关闭 Cocos Creator 后手动删除。
七、package.json
package.json 文件和 assets 文件夹一起,是验证 Cocos Creator 项目合法性的标志,只有包括了这两个内容的文件夹才能作为 Cocos Creator 项目打开。
八、tsconfig.json
tsconfig.json 文件,我们在前面在介绍vs code 配置api 智能提示时已经接触过了。
九、扩展插件文件夹(extensions)
extensions 文件夹用于存放项目的自定义扩展插件。如需卸载扩展插件,在 extensions 中删除对应的文件夹即可。


相关文章:
CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用
我们通过Dashboard 创建一个2d项目,来演示CocosCreator 的项目结构。 等待创建完成后,会得到以下项目工程: 一、assets文件夹 assets文件夹:为资源目录,用来存储所有的本地资源,如各种图片,脚本…...
html5学习笔记18-web存储、web sql、web worker
https://www.runoob.com/html/html5-webstorage.html HTML5 web 存储,可替代 cookie 的本地存储方式。 客户端存储数据的两个对象:localStorage网站的 sessionStorage窗口的 localStorage.setItem("sitename", "菜鸟教程"); // 存…...
大数据专业毕业能从事什么工作
大数据从业领域很宽广,不管是科技领域还是食品产业,零售业等都是需要大数据人才进行大数据的处理,以提供更好的用户体验,优化库存降低成本预测需求。 大数据开发做什么? 大数据开发分两类,编写Hadoop、Spa…...
avalonia、WPF使用ScottPlot动态显示ECG心电图
文章目录 avalonia、WPF使用ScottPlot动态显示ECG心电图实现效果,动态效果懒得录视频了安装代码部分UpdateData方法就是用来更新心电图表的方法, 根据消息队列数据去更新是视图中的ScottPlot 图表 avalonia、WPF使用ScottPlot动态显示ECG心电图 avalonia…...
国内数学公式识别软件对比
1. 超级公式 官网 https://www.ocrmath.com/ 目前超级公式最好用 2. 极度公式 官网 https://jidugs.wrste.com/ 季度公式也还可以,之前提了一些改进用户建议,很久都不改,遂改用超级公式 3. SimpleTex 官网 https://simpletex.cn/ 最近才…...
SCOPE_IDENTITY什么意思
在关系型数据库中,SCOPE_IDENTITY()是一个用于获取最近插入的行的自增标识列值的函数。当向数据库表中插入一行数据时,如果表中的某列被配置为自增标识列(通常是主键列),数据库会自动为每个插入的行分配一个唯一的值&a…...
构建现代应用:Java中的热门架构概览
文章目录 1. 三层架构2. Spring框架3. 微服务架构4. Java EE(Enterprise Edition)5. 响应式架构6. 大数据架构7. 领域驱动设计(Domain-Driven Design,DDD)8. 安卓开发架构结论 🎉欢迎来到Java学习路线专栏~…...
Axure RP软件安装包分享(附安装教程)
目录 一、软件简介 二、软件下载 一、软件简介 Axure RP是一款专业的原型设计工具,它能够帮助用户创建高保真度的交互式原型。 Axure RP具有以下特点: 强大的交互设计功能:Axure RP提供了丰富的交互设计工具,用户可以通过拖拽和…...
关于微信小程序的生命周期
关于微信小程序的生命周期 onLaunch 官网App.vue/App.uvue | uni-app官网 问题描述:我现在有个小程序 取名为a 有个用户b 从来没有打开过小程序 那么他第一次打开小程序的时候会触发onLaunch 然后用户b退出了小程序 那么用户 b重新打开小程序的时候会触发 onL…...
【数据结构】带头双向循环链表及其实现
目录 1.带头双向循环链表 2.带头双向循环链表实现 2.1初始化 2.2销毁 2.3头插 2.4链表打印 2.5头删数据 2.6尾插数据 2.7尾删数据 2.8链表判空 2.9查找一个数据 2.10在pos位置前插入数据 2.11删除pos位置 2.12求链表的长度 2.顺序表和链表的比较 1.带头双向循环…...
问道管理:日换手率达20是好是坏?
关于股票商场的出资者而言,日换手率是一个非常重要的目标。日换手率是指股票当日买卖量与该股总股本之比。假如一只股票的日换手率过高,那么就意味着该股票的流动性较强,而假如日换手率过低,那么就意味着该股票的流动性较弱。 那…...
勃艮第葡萄酒是如何分级的?
勃艮第葡萄酒来自一个同名的地区:勃艮第,它位于法国中东部,在西部的卢瓦尔河和东部的索恩河之间。该地区最大的城市是欧塞尔、第戎、马孔和内韦尔。由于地处国家中心,勃艮第属于大陆性气候,夏季炎热,冬季寒冷。这种气候…...
使用awvs进行web安全扫描
1、安装 docker pull secfa/docker-awvs docker run -it -d -name awvs -p 13443:3443 --cap-add LINUX_IMMUTABLE secfa/docker-awvs2、账号密码 # https://ip:13443/ # 用户名:adminadmin.com # 密码:Admin1233、使用 ps:需要征得甲方的同意...
抖音小程序开发教学系列(1)- 抖音小程序简介
章节一:抖音小程序简介 1.1 抖音小程序的背景和概述 抖音小程序的发展背景和市场趋势: 抖音作为一款热门的短视频社交平台,用户群体庞大,社交共享的特性也为小程序的发展提供了广阔的空间。抖音小程序作为抖音在社交和用户粘性…...
【4.Vue兄弟组件之间传值-Bus总线】
1.概述 通过创建一个新的vm对象,专门统一注册事件,供所有组件共同操作,达到所有组件随意隔代传值的效果 也就是:各个组件内部要传输的数据或者要执行的命令信息,靠bus来通信。 2. 代码实现 2.1 全局引入 全局引入的话,就直接在main.js里面引入即可: // 创建 bus总线 V…...
element中Notification组件(this.$notify)自定义样式
1、自定义样式效果 2、vue代码 this.notifications this.$notify({title: ,dangerouslyUseHTMLString: true,duration: obj.remindMethod3 ? 0:4500,customClass: notify-warning,offset: 50,showClose: false,message: this.$createElement("div",null,[this.$…...
Manjaro安装使用
Manjaro安装使用 1.先更改镜像源:sudo pacman-mirrors -c China -g 2.安装第三方软件管理工具 :sudo pacman -Sy yay 导入GPG Key sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring安装输入法 sudo pacman -S fcitx-im (#默认全部安装…...
【iOS】折叠cell
文章目录 前言一、实现效果二、折叠cell的实现原理三、实现折叠cell的高度变化四、实现选中点击的单元格总结 前言 在暑假的3GShare中用到了折叠cell控件,特此总结博客记录 一、实现效果 二、折叠cell的实现原理 首先我们需要知道ScrollView的是TableView的父类&a…...
无涯教程-Android - DatePicker函数
Android Date Picker允许您在自定义用户界面中选择由日,月和年组成的日期。为此功能,android提供了DatePicker和DatePickerDialog组件。 在本教程中,我们将通过DatePickerDialog演示日期选择器的用法, DatePickerDialog是一个包含DatePicker的简单对话框。 为了显示DatePicker…...
经纬恒润荣获吉利汽车“最佳价值贡献”奖
8月18日,以“全面向新 共创共赢”为主题,吉利汽车在宁波成功举行2023年电子电器核心供应商恳谈会。经纬恒润凭借在项目合作上持续创新、高效协同等优异表现,获得“最佳价值贡献”奖项。 作为国产汽车代表性品牌之一,吉利汽车积极推…...
如何快速上手Udeler:新手必看的完整Udemy课程下载指南
如何快速上手Udeler:新手必看的完整Udemy课程下载指南 【免费下载链接】udemy-downloader-gui A desktop application for downloading Udemy Courses 项目地址: https://gitcode.com/gh_mirrors/ud/udemy-downloader-gui 想要随时随地学习你购买的Udemy课程…...
Chrome插件开发实战指南:从入门到发布的完整开发教程
随着浏览器生态不断发展,Chrome插件(Chrome Extension)已经成为提高工作效率、实现自动化操作、数据采集以及浏览器功能增强的重要工具。无论是广告拦截、网页翻译、SEO分析,还是自动化办公,背后几乎都离不开Chrome插件技术。 尤其是在AI时代,Chrome插件已经不仅仅是“浏…...
7步掌握思源宋体TTF:从零基础到专业应用全攻略
7步掌握思源宋体TTF:从零基础到专业应用全攻略 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 思源宋体(Source Han Serif)是一款由Google与Adobe联…...
中兴光猫工厂模式解锁神器:zteOnu让你的网络管理权限瞬间升级
中兴光猫工厂模式解锁神器:zteOnu让你的网络管理权限瞬间升级 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾经想过,家里的中兴光猫其实隐藏着更多高级…...
蚂蚁面试实录:手撕多头注意力到LoRA配置的九个坑
面试开场:写代码,别背公式蚂蚁AI应用开发岗面试一开始,面试官没有让我复述Transformer定义,而是直接说:“用PyTorch手写一个Multi-Head Attention,讲清楚Q、K、V的维度变化。”这种考察方式在蚂蚁很常见&am…...
TAO循环:构建可测试、可监控的AI智能体行为闭环
1. 项目概述:这不是在写提示词,是在搭建一个微型认知操作系统 “Beyond the Prompt: Engineering the ‘Thought-Action-Observation’ Loop”——这个标题乍看像一篇AI哲学论文,但实操起来,它根本不是在教你怎么写更花哨的promp…...
开关电源负反馈环路设计:从传递函数到稳定性实战
1. 项目概述:从“开环”到“闭环”的认知跃迁在电源设计,尤其是开关电源设计的领域里,“负反馈”是一个既基础又核心的概念。很多工程师在入门时,可能会把注意力集中在功率拓扑的选择、电感电容的计算、MOSFET的选型上,…...
Unity预加载:减少游戏中首次加载资源时的卡顿
遇到的问题,如标题所示,所以写了如下模块。模块功能就是初始化时候,加载零散/文件夹的物体,代码如下:#region 启动预加载模块/// <summary> 预加载间隔(分帧防卡顿) </summary>priv…...
帕鲁杯第二届应急响应:jumpserver,waf,mysql,sshserver,server01,Palu03,Palu02,每个靶机的漏洞总结
一、题目描述1.提交堡垒机中留下的flag2.提交waf中隐藏的flag3.提交mysql中留下的flag4.提交攻击者的攻击IP5.提交攻击者的最早攻击时间6.提交web服务泄露的关键文件名7.提交泄露的邮箱地址作为flag进行提交8.提交立足点服务器ip地址9.提交攻击者使用的提权用户密码10.提交攻击…...
AI Agent Harness Engineering 记忆检索增强:RAG 技术在智能体中的创新应用
AI Agent Harness Engineering 记忆检索增强:RAG 技术在智能体中的创新应用 本文作者:拥有15年经验的资深软件架构师、技术博主,专注于大模型、Agent架构、云原生领域的实践与布道 本文约10200字,预计阅读时间25分钟,适合有大模型基础、想要深入了解Agent开发的中高级开发…...
