项目 github地址
打开项目选GameLauncher场景,直接启动游戏。我用的是 Unity 2021.3.6f1 版本。但应该是2017之后的都支持,没有实测过。
参考
GameFramework框架详解之 DataTable配置表模块
老规矩,先看上面这篇文章,掌握大致的原理。
简单总结一下
DataTable 指的是策划的配置表数据,类似npc啊,武器啊,主角等级参数啊之类的。策划会配置到Excel表上,然后呢,我们就会用工具把Excel表转成tab分隔txt或者json格式(看你喜欢),外加对应的C#的数据类,这样程序里面就可以直接使用了。
为什么不在程序里面直接用Excel的读取工具?因为效率!
配置
1.在 BuildIn 节点配置 LitJsonHelper
2.如果数据文件用的是json格式,在 DataTable组件节点配置 DataTableHelperBase 为 JsonDataTableHelper。
3.如果数据文件用的是Tab分隔格式,在 DataTable组件节点配置 DataTableHelperBase 为DefaultDataTableHelper
这样,需要的配置就完成了。
重构了什么
- 把事件监听的注册和取消封装到 DataTableMgr 里面。
- 一次性可以加载一个或多个文件,如果正在加载(IsOnLoading == true),新的请求会被忽略。
- 通过 IsOnLoading 判断是否加载完成,每次加载完成后会注销监听事件。
- 封装了 GetDataRow 方法直接获取数据对象。
使用工作流
- 策划参考现有的Excel表编写参数。
- 使用导表工具导出数据结构C#类和数据文件,拷贝到Client的对应目录,具体参考后一章。
- 在业务上合适的流程,通过 DataTableMgr的LoadData方法加载配置表。
- 业务层调用接口 GetDataRow 根据id获取对应数据。