CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用

这篇具有很好参考价值的文章主要介绍了CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


我们通过Dashboard 创建一个2d项目,来演示CocosCreator 的项目结构。


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


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

CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


一、assets文件夹


assets文件夹:为资源目录,用来存储所有的本地资源,如各种图片,脚本资源。

只有在这个目录下的内容才会显示在cocos编辑器的资源管理器中。


其中非常重要的一点,assets 中每个文件在导入后都会生成一个和文件同名的.meta 文件。


1、meta 文件的作用

理解 meta 文件的作用和更新时机,对于我们在解决资源冲突、文件丢失、组件属性丢失等问题时,有非常重要的意义。


例如,我们在cocos 编辑器的资源管理器中,创建一个名字为script 的文件夹, 用于存储脚本文件。


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


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

CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


script.meta 文件内容:

包含 ver (版本)、 uuid(唯一id) 、importer (资源类型)等参数。


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


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

CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


图片资源生成的meta文件内容比较多,除了基本的 veruuid 等信息外,还记录了图片的尺寸、偏移、九宫格等数据。

如下:

{
  "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 对应的资源无法找到, 编辑的界面会出现资源、图片丢失,还可能出现组件属性丢失的情况。


如图:

CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


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 文件。


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8



从上图提示中可以看到冲突的 UUID 字符串。

UUID 冲突解决办法:

第一步,打开操作系统文件管理或代码编辑器,搜索冲突的UUID,如图:


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


第二步,关闭Cocos Creator 编辑器,然后任意删除其中一个 meta 文件。


第三步,再重新打开 Creator 编辑器即可解决。


第四步,虽然通过上面三步,解决了目录结构加载不完整的问题。但是编辑器引用到这个资源的地方就会出现资源丢失,所以还得需要重新编辑或者重新配置一次资源。


为了避免 UUID 冲突发生,最好在引擎资源管理工具中进行添加、移动文件。


二、library文件夹


library 是将 assets 中的资源导入后生成的,这里文件的结构和资源的格式将被处理成最终游戏发布时需要的形式。


library 丢失或损坏的时候,只要删除整个 library 文件夹再打开项目,就会重新生成资源库。


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


三、构建目标(build)


在使用编辑器主菜单中的 项目 -> 构建发布 使用默认发布路径发布项目后,编辑器会在项目路径下创建 build 目录,并存放所有目标平台的构建工程。


例如,我们构建一个 web手机端的工程。

CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


四、编辑器配置目录(profiles)


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


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8

CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


五、项目设置目录(settings)


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


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


六、临时文件夹(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 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8


CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用,CocosCreator3.8,笔记,编辑器,CocosCreator,CocosCreator3.8文章来源地址https://www.toymoban.com/news/detail-694242.html

到了这里,关于CocosCreator3.8研究笔记(三)CocosCreator 项目结构说明及编辑器的简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)

    前面的文章已经介绍了Layout 组件 、ScrollView 组件 、PageView 组件 。 想了解的朋友,请查看 CocosCreator3.8研究笔记(十八)CocosCreator UI组件(二)。 今天我们主要介绍CocosCreator 常用组件:Button 组件 、EditBox 组件 、ProgressBar 组件、Toggle 组件。 一、Button 组件 Button 组件可以响应

    2024年02月04日
    浏览(44)
  • CocosCreator3.8研究笔记(六)CocosCreator 脚本装饰器的理解

    一、什么是装饰器? 装饰器是TypeScript脚本语言中的概念。 TypeScript的解释:在一些场景下,我们需要额外的特性来支持标注或修改类及其成员。装饰器(Decorators)为我们在类的声明及成员上通过元编程语法添加标注提供了一种方式。 在TypeScript中,装饰器分为:类装饰器、属

    2024年02月09日
    浏览(42)
  • CocosCreator3.4.2源码渲染流程解读

     首先上一张脑图镇楼,有些流程还有待后续补充,但是整个刷新过程差不多都完成了。 在上一个xmind文件地址 https://download.csdn.net/download/m0_37609239/87254684 接下来就正式开始讲代码: 每帧刷新渲染还是从mainloop开始讲,前面的流程可以看 ​​​​​​​​​​​​​​CocosC

    2023年04月08日
    浏览(40)
  • 【03Eclipse 窗口说明】对每个窗口和视图的功能和用途的详细说明导航栏编辑器窗口项目资源管理器

    Eclipse 是一款功能强大的集成开发环境(IDE),提供了丰富的窗口和视图来支持开发工作。本教程将详细介绍 Eclipse 主要窗口和常见视图的功能和用途。 1. 导航栏 导航栏位于 Eclipse 窗口的顶部,包含了各种菜单和工具栏,用于导航和执行操作。 2. 编辑器窗口 编辑器窗口是您

    2024年02月08日
    浏览(50)
  • 【绝对清楚】Flask项目结构(有项目文件夹详细对照说明)

    插个目前实现的登录页面~😄 之前看了很多很多的Flask框架的项目结构,了解到它是一个高度灵活的轻量级web框架,意思就是项目的结构不像Django那样有着固定的模式,而是可以根据开发者的爱好进行设计。这也就给想用正儿八经的一种结构写一个网站带来了困扰。好在看了

    2024年02月02日
    浏览(52)
  • ROS小车研究笔记1/31/2023 小车硬件结构及键盘移动控制节点

    1 小车硬件结构 1 中控设备 上方的单片机用于控制电机运动,搭载wifi模块和电量显示屏。下方为树莓派,安装了ROS系统和Ubuntu系统,用于整个小车控制。显示屏和树莓派相连 2 传感器系统 激光雷达及转换器。激光雷达和转换器相连,再由转换器连接树莓派以控制激光雷达 摄

    2024年02月09日
    浏览(65)
  • Python界面编辑器Tkinter布局助手使用说明

    Tkinter布局助手是一款为Tkinter打造,仅需拖拽组件进行布局,所见即所得,非常方便就能做出一个GUI界面,再配合 pyinstaller 库将程序打包成exe,简直是开发小工具的利器。 当第一次接触到Tkinter,觉得它很方便,兼容性也挺不错,而且是Python自带的。 后来为了方便布局,我开

    2024年03月15日
    浏览(53)
  • uni-app使用HBuilder X编辑器本地打包apk步骤说明

    下载地址官方地址:Android Studio 下载文件归档  |  Android 开发者  |  Android Developers 安装Android SDK和Google USB Driver即可,后者主要是为了后期使用USB设置的,如果不需要可以不点。 下载地址:Android 离线SDK - 正式版 | uni小程序SDK 注意:Android离线SDK的版本一定注意和HBuilder X的版

    2024年02月04日
    浏览(68)
  • 技术文档指南:版本说明、网站文案、FAQ、案例研究与内容优化

    Release Notes 通常是软件文档的一部分,是在新产品发布时提供给用户的简短、高级摘要。它们包含有关更新的重要信息,包括新功能、增强功能、错误修复,通常还包括已知问题。每个版本说明与特定软件版本相关联,并帮助用户了解该特定版本中可以期待的哪些更改或改进

    2024年02月03日
    浏览(48)
  • 【2022级研究生人工智能高级语言程序设计考试说明】

    考试题共包括4道大题: 第一大题:分类和回归----(7选1) 第二大题:降维和聚类----(6选1) 第三大题:API调用(课程中学习过的所有云平台)----(11选1) 第四大题:深度学习项目----(10选1) 题目采取随机分配方式,请查阅 人工智能高级语言程序设计考试-题目分配表 ,

    2024年02月11日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包