开发规范
<table>
<thead>
<tr>
<th>作者</th>
<th>QFord</th>
</tr>
</thead>
<tbody>
<tr>
<td>创建人情</td>
<td>2024-11-10</td>
</tr>
<tr>
<td>更新日期</td>
<td>2024-12-10</td>
</tr>
<tr>
<td>备注</td>
<td>此内容会根据需要迭代</td>
</tr>
<tr>
<td>版本</td>
<td>V1.3.2</td>
</tr>
</tbody>
</table>
<p>[TOC]</p>
<h1>背景</h1>
<p>2024-10-12 根据锐锋指示和讨论,主要规范规范目录结构,便于集成到第三方项目,特制定如下规范</p>
<h1>UE 工程目录规范</h1>
<p>Content
├─VLab
│ │─LabResources
│ │ │─Maps
│ │ │ │─Level_1
│ │ │ │─Level_2
│ │ │ │─...
│ ├─Coursewares
│ │ │─Bird
│ │ │ ├─BirdResources
│ │ │─...
├─Script
│ │─ElementResources
│ │ ├─Commons
│ │ ├─Elements
│ │ │ │─JiuJingDengElement
│ │ │ │─...</p>
<p>>1. VLab是应用工程的根目录, 除了特殊用途的Script目录,所有文件都在VLab目录下</p>
<ol>
<li>LabResources下放置关卡(场景)资源的目录,每个关卡的资源要放在其下新建独立目录,如Level_1 、 Level_2,<strong>而关卡文件放在Maps即可</strong>。</li>
<li>Coursewares是颗粒的目录</li>
<li><strong>器材规范(美术)</strong> Script是Unlua器材脚本的目录,<strong>器材资源</strong>也要求放在这个目录下(ElementResources是器材资源的根目录)
例如:JiuJingDengElement里面会有资源、配置和蓝图等所有资源。美术资源需要放在Res目录。完整器材目录如下:
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=b34f577260025cd9632b90d97e6e619b&amp;file=file.png" alt="" />
<strong>Res目录细节</strong>:<a href="https://mubu.com/doc/6pLIF86NK2J#m">https://mubu.com/doc/6pLIF86NK2J#m</a></li>
</ol>
<h1>编码规范</h1>
<p>遵循下面的参考资料的<strong>UE5风格指南</strong>,如果和文本的规范冲突的,以本文规范为准。</p>
<h2>要点摘要</h2>
<p>1.1:对外暴露使用的类名应该带有前缀(UE框架内不适用采用namespace避免同名冲突),以免和其他插件或UE冲突。(2024-11-20)</p>
<h2>插件规范</h2>
<h3>0. 插件独立工程自测规范</h3>
<p><font color=red><strong>自定义插件必须有自己的独立UE工程,提交前必须进行打包到需要支持的目标平台(比如PC端)进行自测通过后方可提交到git仓库。</strong></font>
> 因为在集成环境有众多的插件,在打包阶段的排查此类问题相对比较费劲,会阻塞版本发布,故要求插件方需提前完成打包问题处理。</p>
<h3>1.自定义插件文件夹和插件命名</h3>
<p>1.1:使用<strong>VLab</strong>前缀
1.2:使用<strong>驼峰法</strong>命名,不使用下划线
<strong>实例如下图所示:</strong>
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=783c5c960af17e70795f19a63c27b8ed&amp;file=file.png" alt="" />
1.3:(建议)插件名称和文件夹名称保持一致
1.4:插件uplugin的DocsURL配置上该插件的开发文档链接、Category配置上插件的分类。</p>
<h3>3.第三方插件</h3>
<p>第三方插件直接放置在集成工程的Plugins文件夹下</p>
<h1>资源规范</h1>
<h2>蓝图规范</h2>
<p><a href="https://github.com/thejinchao/ue5-style-guide?tab=readme-ov-file#anc-bp">https://github.com/thejinchao/ue5-style-guide?tab=readme-ov-file#anc-bp</a></p>
<ol>
<li>器材蓝图命名规范 BP_Code</li>
</ol>
<h2>关卡(Level)命名</h2>
<p>示例:Level_ShiYanShi_1</p>
<h2>器材规范</h2>
<h2>化学表现规范</h2>
<p>美术工程中化学表现统一放入<strong>Content\Third</strong> 文件夹下</p>
<h3>液体表现规范</h3>
<p>器材中 LiquidMesh 和 MaskMesh 命名
1.LiquidMesh 统一命名为 <strong>LiquidVolume</strong>
MaskMesh 统一命名为 <strong>LiquidVolumeMask</strong>
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=9d1322fc38845314d4c4d3d51ab0c551&amp;file=file.png" alt="" /></p>
<p>2.器材迁移时不要包含液体插件
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=02af59512cd455a9afa03bd3c6678702&amp;file=file.png" alt="" /></p>
<p>3.保证每个Third 下的子文件夹迁移时只包含自己
美术同学提交资源时,点一下迁移看看有没有满足这个条件。
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=b299c08a30e83148a1655c16ae82080b&amp;file=file.png" alt="" /></p>
<p>4.Third下每个子文件夹下 的资源保证是最小的干净资源(没有用到的资源都删掉)。</p>
<h1>代码管理规范</h1>
<p>[基于Gitlab的代码管理规范](<a href="https://www.kdocs.cn/l/cdgR3kwDWm8D">https://www.kdocs.cn/l/cdgR3kwDWm8D</a> "基于Gitlab的代码管理规范")</p>
<h1>参考资料</h1>
<ol>
<li>[UE5风格指南-英文原版](<a href="https://github.com/Allar/ue5-style-guide">https://github.com/Allar/ue5-style-guide</a> "UE5风格指南")</li>
<li>[UE5风格指南-中文翻译版](<a href="https://github.com/thejinchao/ue5-style-guide">https://github.com/thejinchao/ue5-style-guide</a> "UE5风格指南-中文翻译版")</li>
</ol>