目录

已到底部

第5节 项目结构
更新时间:2020-12-25 23:40:45
<h1>项目结构</h1> <p>通过 Dashboard,我们可以创建一个 Hello World 项目作为开始,创建之后的项目有特定的文件夹结构,我们将在这一节熟悉 Cocos Creator 项目的文件夹结构。</p> <h2>项目文件夹结构</h2> <p>初次创建并打开一个 Cocos Creator 项目后,开发者的项目文件夹将会包括以下结构:</p> <pre style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 16px;white-space: pre-wrap;break-inside: avoid;direction: ltr;margin: 0px 0px 1.275em;padding: 0.85em 1em;border: none;color: #333333;overflow: auto;overflow-wrap: normal;background: #f7f7f7;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.2px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial"><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0px;border: none;color: inherit;background: 0px 0px;display: inline;max-width: initial;overflow: initial;line-height: inherit;white-space: pre">ProjectName(项目文件夹) ├──assets ├──library ├──local ├──packages ├──settings ├──temp └──project.json </code></pre> <p>下面我们将会介绍每个文件夹的功能。</p> <h3>资源文件夹(assets)</h3> <p><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">assets</code><span> </span>将会用来放置游戏中所有的本地资源、脚本和第三方库文件。只有在<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">assets</code><span> </span>目录下的内容才能显示在<span> </span><strong>资源管理器</strong>中。<code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">assets</code><span> </span>中的每个文件在导入项目后都会生成一个相同名字的<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">.meta</code><span> </span>文件,用于存储对应的资源配置和索引信息。<code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">.meta</code><span> </span>文件需要一并提交到版本控制系统,详见<span> </span>资源管理注意事项 --- meta 文件。</p> <p>一些第三方工具生成的工程或设计原文件,如 TexturePacker 的<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">.tps</code><span> </span>文件,或 Photoshop 的<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">.psd</code><span> </span>文件,可以选择放在<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">assets</code><span> </span>外面来管理。</p> <h3>资源库(library)</h3> <p><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">library</code><span> </span>是将<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">assets</code><span> </span>中的资源导入后生成的,在这里文件的结构和资源的格式将被处理成最终游戏发布时需要的形式。</p> <p>当<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">library</code><span> </span>丢失或损坏的时候,只要删除整个<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">library</code><span> </span>文件夹再打开项目,就会重新生成资源库。</p> <h3>本地设置(local)</h3> <p><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">local</code><span> </span>文件夹中包含该项目的本机上的配置信息,包括编辑器面板布局,窗口大小,位置等信息。开发者不需要关心这里的内容。</p> <h3>扩展插件文件夹(packages)</h3> <p><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">packages</code><span> </span>文件夹用于放置此项目的自定义扩展插件。如需手动安装扩展插件,可以手动创建此文件夹。如需卸载扩展插件,在<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">packages</code><span> </span>中删除对应的文件夹即可。</p> <h3>项目设置(settings)</h3> <p><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">settings</code><span> </span>里保存项目相关的设置,如<span> </span><strong>构建发布</strong><span> </span>菜单里的包名、场景和平台选择等。</p> <h3>临时文件夹(temp)</h3> <p><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">temp</code><span> </span>是临时文件夹,用于缓存一些 Cocos Creator 在本地的临时文件。这个文件夹可以在关闭 Cocos Creator 后手动删除,开发者不需要关心这里面的内容。</p> <h3>project.json</h3> <p><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">project.json</code><span> </span>文件和<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">assets</code><span> </span>文件夹一起,作为验证 Cocos Creator 项目合法性的标志,只有包括了这两个内容的文件夹才能作为 Cocos Creator 项目打开。开发者不需要关心里面的内容。</p> <h3>构建目标(build)</h3> <p>在使用主菜单中的<span> </span><strong>项目 -&gt; 构建发布...</strong><span> </span>使用默认发布路径发布项目后,编辑器会在项目路径下创建<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">build</code><span> </span>目录,并存放所有目标平台的构建工程。</p> <h2>版本控制</h2> <p>Cocos Creator 在新建项目时,会自动生成<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">.gitignore</code><span> </span>文件,用于排除不应该提交到 git 仓库的文件。如果开发者使用其它版本控制系统,或者需要提交项目到其它地方,应该注意只需要提交<span> </span><code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">assets</code>、<code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">packages</code>、<code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">settings</code>、<code style="box-sizing: border-box;-webkit-tap-highlight-color: transparent;text-size-adjust: none;-webkit-font-smoothing: antialiased;font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;font-size: 0.85em;break-inside: avoid;direction: ltr;margin: 0px;padding: 0.2em;border: none;color: inherit;background-color: #f7f7f7">project.json</code>,或其它手动添加的关联文件。</p>