# 项目规范

## 依赖库

所有依赖库（通常为 dll 文件）皆统一放入`Clients/Assets/Plugins`文件夹。

安装步骤：

1. 访问 [Nuget](https://www.nuget.org/)，搜索目标依赖库，点击进入详情，选择最新稳定版（若一开始访问的是预览版），然后点击右侧的`Download package`。
2. 找到下载好的包，以 zip 方式解压，找到`lib/netstandard2.0/依赖包名称.dll`，将其放入上述文件夹中，随后根据 Unity 控制台输出的错误信息（也就是`Unable to resolve reference '上游依赖库'. Is the assembly missing or incompatible with the current platform?`这样的信息），继续从 Nuget 下载其上游依赖库。
3. 重复执行上述步骤，直到控制台不再输出错误信息，此时表明依赖已齐备，依赖库安装完成。

## C# 脚本

编写 C# 脚本时，应遵守一定的代码风格规范。以下为具体规范：

1. 使用`var`声明变量，例如`var number = 1;`。当变量的声明与初始化无法同处一处时，应使用传统的前置类型声明（因为 C# 的`var`不支持基于上下文的类型推断）。
2. 命名空间应与其所在目录对应。例如，若某文件处于`Scripts/Foo/Bar`目录，则其命名空间应为`namespace Foo.Bar {}`。若文件处于`Scripts`根目录，则无需额外添加命名空间。

## 数据

暂定使用 [JSON](https://www.json.org/) 存储数据与配置信息。后续可能会根据需要酌情添加对其他数据交换格式的支持。

## 提交

为规范开发流程，我们制定了以下几条规则：

1. 提交更改时，评论文本格式应为`(PART) COMMENT`。
   - `PART`表明更改部分，如`client`（表明更改的是客户端部分）和`tools`（表明更改的是工具部分）等。
   - `COMMENT`表明更改详情，用简练的语言描述更改内容。
     - 如果提交性质符合以下几种，则评论格式如下：
     - 功能添加：`feat:xxx`
     - 漏洞修复：`fix:xxx`
     - 日常维护：`chore:xxx`
2. 请确保你的提交为原子提交（即不可再分割成数个部分的提交），以便项目维护。
3. 除策划案等此类文档（一般这类文档使用 Word 撰写），其他类型文档请使用 Markdown 撰写。
