项目数据统计与归档工具

ProjectStatUtil 是一套用于分析 Unity 项目代码规模与资源构成的编辑器工具,并支持将统计结果与项目源码导出为归档文本。

该工具主要用于 项目体量评估、资源结构分析、技术决策辅助、阶段性留档 等场景。

工具为 Editor-only,不会参与构建,也不会修改任何项目资源。


1. 工具概述

项目数据统计与归档工具由两部分组成:

  • ProjectStatWindow
    提供可视化操作界面,用于配置统计选项与归档规则。

  • ProjectStatUtil
    负责实际的数据扫描、统计计算与文本归档导出,输出纯文本结果。

二者配合使用,可快速完成项目分析与技术归档。


2. 打开方式

在 Unity 编辑器菜单栏中选择:Fink Framework → 统计归档面板

打开后即可看到 项目数据统计与归档 窗口。如下图所示。

unity


3. 统计内容说明

项目统计工具支持两大类统计:

  • 代码统计
  • 资源统计

所有统计均基于 Assets 目录进行扫描。


4. 代码统计

用于统计项目中的脚本代码规模。

4.1 启用代码统计

开启后将统计 C# 脚本的总行数。(默认开启)

统计对象为 .cs 文件

4.2 仅统计指定脚本目录

开启后,仅统计指定目录下的脚本文件。

目录路径以 Assets/ 为根 示例:Scripts

实际统计路径为: Assets/Scripts

适用于:

  • 项目代码结构清晰
  • 希望排除第三方插件、框架代码

4.3 包含 Shader 行数

开启后,将额外统计 .shader 文件的行数。

适用于:

  • 重度 Shader 项目
  • 技术美术 / 渲染相关项目

4.4 统计结果示例

[代码统计]
  C# 行数:12874
  Shader 行数:2431

5. 资源统计

用于统计项目中的资源类型数量。

5.1 可统计的资源类型

可按需启用以下统计项:

  • 材质: .mat
  • 模型: .fbx / .obj / .glb
  • 音频: .wav / .mp3 / .ogg
  • Prefab: .prefab
  • 场景: .unity
  • 图片 / 纹理: .png / .jpg / .jpeg / .tga / .psd / .exr / .hdr
  • Addressables 组
  • AssetBundle 资源

5.2 Addressables 统计说明

  • 统计内容为 AddressableAssetGroup 数量
  • 基于 AssetDatabase.FindAssets("t:AddressableAssetGroup")
  • 仅统计 Addressables 组本身,不统计组内资源数量

5.3 AssetBundle 统计说明

  • 统计所有设置了 assetBundleName 的资源
  • 基于 AssetImporter.assetBundleName
  • 不区分 AB 包来源或加载方式

5.4 统计结果示例

[资产统计]
  材质:56
  模型:42
  音频:18
  Prefab:132
  场景:7
  图片/纹理:289
  Addressables 组:4
  AssetBundle 资源:23

6. 打印统计报告

点击 打印统计报告 按钮后:

  • 工具会扫描当前项目
  • 根据勾选的统计项生成一份完整报告
  • 报告会打印在Unity控制台区域
  • 报告包含内容
  • 统计时间
  • 代码统计结果(若启用)
  • 资源统计结果(若启用)

7. 报告格式说明

统计报告为 纯文本格式,示例:

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

[统计时间]
2025-01-02 21:34:10

[代码统计]
  C# 行数:12874

[资产统计]
  Prefab:132
  场景:7

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

8. 数据归档功能

数据归档用于将统计结果与项目源码导出为文本文件, 适用于 软著材料准备、项目留档、阶段性备份 等场景。

8.1 启用数据归档

勾选 启用数据归档 后,归档相关选项才可进行配置。

8.2 统计数据归档

用于将项目统计结果导出为文本文件。

8.2.1 配置项

  • 启用「导出统计数据文本」
  • 选择统计数据导出目录

8.2.2 导出规则

  • 文件格式:.txt
  • 文件命名规则:ProjectStat_yyyyMMdd_HHmmss.txt
  • 内容与「打印统计报告」一致

8.3 项目源码归档

用于将指定目录下的 C# 源码导出为单一文本文件。

8.3.1 配置项

  • 启用「导出项目源码文本」
  • 指定源码读取路径(相对于 Assets,无需填写 Assets/ 前缀)
  • 是否包含 Editor 目录下的代码
  • 是否在源码前写入文件路径说明
  • 选择源码导出目录

8.3.2 导出规则

  • 文件格式:.txt
  • 文件命名规则:SourceCode_yyyyMMdd_HHmmss.txt
  • 源码按路径排序后顺序写入
  • 每个文件之间使用分隔线区分

8.4 执行数据归档

点击 执行数据归档 后:

    1. 工具会进行参数完整性校验
    1. 弹出确认对话框
    1. 校验通过后执行归档导出
    1. 导出完成后弹出完成提示

如配置不完整,将通过弹窗提示具体问题,不会执行归档。


9. 使用限制与注意事项

  • 仅在 Unity 编辑器中可用
  • 不支持运行时调用
  • 所有统计为文件级扫描
  • 不分析代码逻辑
  • 不分析资源引用关系
  • 大型项目首次扫描可能需要少量时间

10. 典型使用场景

该工具常用于:

  • 项目规模评估
  • 技术选型参考(是否需要 Addressables / 分包)
  • 项目阶段性复盘
  • 团队技术汇报
  • 软著与技术材料整理
  • 判断是否需要拆分模块或资源

11. 总结

项目数据统计与归档工具是一套 轻量、直观、无侵入 的编辑器分析与归档工具。

它不追求复杂分析,而是帮助开发者快速回答以下问题:

  • 项目当前规模如何?
  • 资源结构是否合理?
  • 是否到了需要资源后端的阶段?
  • 是否可以快速生成可留档的技术材料?

该工具通常作为 项目管理与技术决策的辅助工具 使用。