GameFramework 开发脚手架之 DataTable配置表模块

257 阅读2分钟

项目 github地址

打开项目选GameLauncher场景,直接启动游戏。我用的是 Unity 2021.3.6f1 版本。但应该是2017之后的都支持,没有实测过。

参考

GameFramework框架详解之 DataTable配置表模块

老规矩,先看上面这篇文章,掌握大致的原理。

简单总结一下

DataTable 指的是策划的配置表数据,类似npc啊,武器啊,主角等级参数啊之类的。策划会配置到Excel表上,然后呢,我们就会用工具把Excel表转成tab分隔txt或者json格式(看你喜欢),外加对应的C#的数据类,这样程序里面就可以直接使用了。

为什么不在程序里面直接用Excel的读取工具?因为效率!

配置

1.在 BuildIn 节点配置 LitJsonHelper

1695178539593.png

2.如果数据文件用的是json格式,在 DataTable组件节点配置 DataTableHelperBase 为 JsonDataTableHelper。

1695178624411.png

3.如果数据文件用的是Tab分隔格式,在 DataTable组件节点配置 DataTableHelperBase 为DefaultDataTableHelper

1695178775831.png

这样,需要的配置就完成了。

重构了什么

  1. 把事件监听的注册和取消封装到 DataTableMgr 里面。
  2. 一次性可以加载一个或多个文件,如果正在加载(IsOnLoading == true),新的请求会被忽略。
  3. 通过 IsOnLoading 判断是否加载完成,每次加载完成后会注销监听事件。
  4. 封装了 GetDataRow 方法直接获取数据对象。

使用工作流

  1. 策划参考现有的Excel表编写参数。
  2. 使用导表工具导出数据结构C#类和数据文件,拷贝到Client的对应目录,具体参考后一章。
  3. 在业务上合适的流程,通过 DataTableMgr的LoadData方法加载配置表。
  4. 业务层调用接口 GetDataRow 根据id获取对应数据。