跳转到正文

项目数据统计与归档工具

项目数据统计与归档工具是 Fink Framework 提供的 Editor-only 工具,用于分析 Unity 项目的代码规模、资源构成,并将统计报告或指定目录下的源码导出为文本文件。

当前版本拆分为两个独立的编辑器面板:

  • 项目统计面板:执行代码与资源统计,查看报告并同步输出到 Console;
  • 项目归档面板:将统计报告和指定目录源码导出为归档文本。

两个面板共用编辑器偏好设置,会记住上次使用的勾选项、路径和导出配置。


1. 打开方式

在 Unity 顶部菜单中选择:

text
Fink Framework → 统计与归档 → 项目统计面板
Fink Framework → 统计与归档 → 项目归档面板

统计与归档菜单入口

统计与归档菜单入口

两个菜单项分别打开对应窗口,不再使用旧版的统一统计归档面板。


2. 项目统计面板

项目统计面板用于选择统计项目、生成统计报告,并在面板和 Unity Console 中同时查看结果。

项目统计面板

2.1 代码统计

代码统计区域包含以下选项:

选项说明
启用代码统计统计 C# 行数;关闭后不会生成代码统计段落
仅统计指定脚本目录将扫描范围限制到 Assets 下指定目录
脚本目录:Assets/仅统计指定目录开启时显示,填写相对于 Assets 的路径
包含 Shader 行数额外统计 .shader 文件行数

例如填写:

text
Scripts

实际扫描目录为:

text
Assets/Scripts

代码统计按文件行数计算,不分析类、方法、注释或代码逻辑。

2.2 资产统计

资产统计区域可以分别开启以下统计项:

选项扫描扩展名或来源
材质.mat
模型.fbx.obj.glb
音频.wav.mp3.ogg
Prefab.prefab
场景.unity
图片 / 纹理.png.jpg.jpeg.tga.psd.exr.hdr
Addressables 组通过 Unity AssetDatabase 查找 AddressableAssetGroup
AssetBundle 资源统计设置了 assetBundleName 的资源

所有文件型统计默认从项目 Assets 目录递归扫描。

Addressables 统计的是 Addressables 组的数量,不是组内资源数量。AssetBundle 统计的是已设置 AssetBundle 名称的资源数量,不区分具体 AB 包名称。

2.3 生成统计报告

点击 重新统计 后,工具会:

  1. 清空面板中的旧报告;
  2. 检查是否至少选择一个统计项;
  3. 扫描当前项目的 Assets 目录;
  4. 按当前选项生成报告;
  5. 将报告显示在面板的“统计输出”区域;
  6. 使用 LogUtil 同步输出到 Unity Console。

如果没有选择任何统计项,会弹出提示,不会开始扫描。

报告结构类似:

text
========== 项目统计数据 ==========

[统计时间]
2026-09-16 17:51:18

[代码统计]
  C# 行数:153208
  Shader 行数:0

[资产统计]
  材质:0
  模型:0
  音频:0
  Prefab:15
  场景:1
  图片/纹理:1
  Addressables 组:0
  AssetBundle 资源:0

==============================

面板与 Console 使用带颜色的显示报告;归档文件使用不含 Unity 富文本标签的纯文本报告。


3. 项目归档面板

项目归档面板专门负责导出统计报告和项目源码,不负责在窗口内展示统计结果。

项目归档面板

3.1 启用项目归档

勾选 启用项目归档 后,下面的导出配置才会启用。未启用时,面板不会显示执行归档按钮。

归档面板支持两类独立输出:

  • 导出统计报告;
  • 导出项目源码。

可以只启用其中一种,也可以同时启用。

3.2 导出统计报告

勾选 导出统计报告 后,需要填写统计导出目录。

导出文件命名规则为:

text
ProjectStat_yyyyMMdd_HHmmss.txt

例如:

text
ProjectStat_20260916_175118.txt

导出的内容来自当前统计选项,会按照保存的代码统计和资产统计配置生成纯文本报告。报告使用 UTF-8 无 BOM 格式写入。

3.3 导出项目源码

勾选 导出项目源码 后,可以配置:

配置项说明
包含 Editor 代码是否包含路径中 Editor 目录下的 C# 文件
在源码前写入文件路径每段源码前写入对应的 Assets/... 路径
源码读取路径一个或多个相对于 Assets 的目录
源码导出目录归档文本的输出目录

源码读取路径不需要填写 Assets/ 前缀,例如:

text
Scripts
FinkFramework

点击 + 添加路径 会添加默认的 Scripts 路径。路径列表右侧的 - 按钮可以移除对应路径。

源码导出文件命名规则为:

text
SourceCode_yyyyMMdd_HHmmss.txt

导出时会:

  1. 递归读取所有配置目录下的 .cs 文件;
  2. 根据是否包含 Editor 代码过滤文件;
  3. 按文件路径排序;
  4. 按顺序合并到一个文本文件中;
  5. 根据选项写入文件路径分隔信息;
  6. 使用 UTF-8 无 BOM 格式保存。

3.4 执行项目归档

点击 执行项目归档 后,工具会先弹出确认对话框。

确认后会检查:

  • 是否至少启用统计报告或源码归档中的一种;
  • 统计报告是否配置导出目录;
  • 源码归档是否配置导出目录;
  • 源码归档是否至少配置一个读取路径。

校验失败时会弹窗说明原因,不会执行导出。校验通过后生成对应文件,并在完成后显示“项目归档已完成”的提示。

归档结束后会刷新 Unity 的 AssetDatabase。


4. 两个面板的职责区别

面板主要职责输出位置
项目统计面板选择统计项、扫描项目、查看统计结果面板 + Unity Console
项目归档面板配置并导出统计报告、项目源码指定目录下的 .txt 文件

推荐工作流程:

text
项目统计面板
    ↓ 确认统计范围和结果
项目归档面板
    ↓ 配置导出目录与源码路径
执行项目归档

ProjectStat_*.txt / SourceCode_*.txt

5. 偏好设置与数据范围

两个面板共用 ProjectStatsPreferences 保存的编辑器偏好设置,包括:

  • 代码和资产统计开关;
  • 指定脚本目录;
  • 统计报告导出目录;
  • 源码导出目录;
  • 源码读取路径列表;
  • 是否包含 Editor 代码;
  • 是否写入文件路径说明。

面板关闭时会保存当前设置,下次打开时自动恢复。

统计范围和归档范围并不完全相同:

  • 项目统计面板扫描项目 Assets 下的文件和指定资源信息;
  • 项目归档面板只导出配置的统计报告和源码读取路径中的 C# 文件;
  • 归档不会自动把整个项目资源复制到输出目录。

6. 使用限制与注意事项

  • 工具仅在 Unity Editor 中可用,不参与运行时和正式构建。
  • 统计是文件级扫描,不分析代码逻辑、资源引用关系或运行时加载关系。
  • 代码行数统计包含读取到的文件行数,不等同于有效代码行数。
  • 源码归档可能包含项目中的敏感代码,导出前应确认读取路径和输出目录。
  • 大型项目第一次扫描或导出较多源码时可能需要一定时间。
  • 如果导出目录位于项目 Assets 内,导出的文本可能再次被 Unity 识别为项目文件,建议使用项目外部目录。
  • Addressables 组统计依赖项目中已配置的 Addressables 数据。
  • AssetBundle 统计依赖资源的 assetBundleName 配置。

7. 典型使用场景

该工具适合用于:

  • 项目体量评估;
  • 代码和资源结构盘点;
  • 判断是否需要引入 Addressables 或资源分包;
  • 阶段性项目留档;
  • 技术汇报和项目复盘;
  • 软著或技术材料准备;
  • 导出指定目录源码供审查或存档。

8. 总结

新版项目数据统计与归档工具将“查看统计”和“导出归档”拆成两个更清晰的编辑器面板:

  • 项目统计面板 负责统计配置、结果展示和 Console 输出;
  • 项目归档面板 负责统计报告和源码文本导出;
  • 两个面板通过偏好设置共享配置;
  • 导出文件带时间戳,避免覆盖已有归档;
  • 整个工具只读取和导出数据,不修改项目资源。

它适合作为项目管理、技术决策和阶段性留档的轻量辅助工具。