跳转到正文

数据管线概述

本页介绍 Fink Framework 数据管线的整体工作流、Excel 配表结构、代码与运行时文件产物、质量校验以及运行时读取方式,帮助你建立从表格维护到游戏内使用的完整认识。

使用入口:在 FinkFramework_Data/DataTables/ 中维护 Excel,通过 Fink Framework → 数据管线系统 → 数据工具面板 执行生成、校验和导出;运行时使用 DataFilesUtil 读取生成的数据。数据源模式、C# 输出位置和加密选项可在 Project Settings → Fink Framework → Data Pipeline 中统一配置。

一句话理解

策划维护 Excel,工具负责生成代码、校验内容和导出文件,业务代码最终只与强类型数据交互。

1. 核心工作流

01

配置(Config)

FinkFramework_Data/DataTables/ 中维护 Excel。前三行依次填写字段名、字段类型和字段说明,第四行开始填写实际数据。

02

生成(Generate)

工具递归扫描所有 .xlsx 文件,为每张表生成数据类与容器类;内部输出时会等待 Unity 完成脚本编译。

03

导出(Export)

逐行解析数据并写出 JSON;Binary 模式还会生成运行时二进制文件。全部成功后生成数据清单。

04

使用(Use)

运行时通过 DataFilesUtil 读取强类型数据,框架会按照当前模式选择 JSON 或 Binary,并处理反序列化。

表格格式与命名要求请继续阅读 Excel 配表规则

2. 生成结果

产物作用输出规则
C# 数据类描述单行数据的字段结构输出到配置的内部或外部 C# 路径
C# 容器类保存整张表的数据集合与数据类生成在同一目录
JSON调试快照或运行时数据源Binary 模式输出到项目外部;JSON 模式输出到 StreamingAssets
Binary更适合正式运行时读取的二进制数据仅 Binary 模式生成,可选择是否启用 AES 加密
数据清单记录运行时数据文件与类型的对应关系全部表格导出成功后写入 StreamingAssets

JSON 与 Binary 模式的区别

模式JSONBinary运行时读取
Binary(推荐)始终生成,保存在项目外部供检查生成到 StreamingAssetsBinary,可按全局设置加密
JSON生成到 StreamingAssets不生成JSON

无论选择哪种模式,业务侧都使用相同的强类型读取方式,不需要自行维护两套加载逻辑。

3. 支持的数据类型

数据解析器支持常见基础类型以及多层复合结构,包括:

  • intfloatdoubleboolstring 等基础类型;
  • 枚举、数组和 List<T>
  • Dictionary<TKey, TValue>
  • Vector2Vector3Vector4Color
  • 自定义数据类,以及由数组、列表、字典组合的嵌套结构;
  • 使用 JSON 表达的复杂单元格内容。

JSON 序列化还内置了 Vector、Color、Bounds、Rect、Matrix4x4 和 Quaternion 等 Unity 常用类型转换器。项目自定义的无参 JsonConverter 也会被自动发现并注册。

4. 数据 QA 与安全保护

数据工具面板提供独立的“验证所有表格”入口,会在不写出运行时文件的情况下检查数据质量:

  • 字段名是否为空、重复或包含非法字符;
  • 字段类型能否被框架识别和构造;
  • 每个非空数据行能否逐格解析为声明的类型;
  • 每张表的警告、错误与最终通过状态;
  • Excel 被其他程序占用等读取异常。

正式导出时,如果任意单元格解析失败,框架不会写出该表的不完整数据;如果存在导出失败的表,也不会生成新的运行时数据清单,避免损坏内容被误认为有效产物。

5. 编辑器工作流

在 Unity 顶部菜单选择 Fink Framework → 数据管线系统 → 数据工具面板,可以执行:

  • 一键处理全部数据:清理旧产物 → 生成代码 → 等待编译 → 导出数据 → 输出汇总;
  • 仅生成数据文件:只更新 C# 数据类与容器类;
  • 仅解析导出数据:使用现有类型解析 Excel 并导出运行时文件;
  • 清空加密数据:清理工具维护的导出内容;
  • 验证所有表格:运行完整的数据 QA;
  • 导出或清空日志:管理本次工具执行记录。

具体界面与操作步骤参见数据管线编辑器工具

6. 运行时读取

运行时数据分为两类:

  • 默认数据位于 StreamingAssets,适合随游戏发布的初始配置;
  • 本地数据位于 persistentDataPath,适合玩家存档或运行期间需要覆盖的数据。

DataFilesUtil 同时提供同步和异步读取。Android、iOS 等平台上的 StreamingAssets 可能是 URI 路径,应使用异步接口;框架会通过数据清单定位文件并完成读取。详细用法参见运行时 API

自动生成目录

AutoGen/AutoExport/ 中的内容由工具维护,重新处理数据时可能被覆盖或清理,请不要手动修改。Excel 源文件应始终保存在 FinkFramework_Data/DataTables/ 中。

下一步

基础使用:创建第一张 Excel 配置表开始,完整走一遍配置、生成、导出和读取流程。