尝试使用ET7.2接入Luban,仿照原版的Config加载流程写的。希望对大家有帮助,也欢迎大家给出意见和建议~
放在了我Fork的ET项目的分支下:
https://github.com/gameall3d/ET/tree/release7.x_Luban
写个一个简单的文档记录:
https://github.com/gameall3d/ET/blob/release7.x_Luban/Book/Luban.md
# Luban接入参考
Luban是一个相对完备的游戏配置数据解决方案。
## 一、Luban工具的配置
根据Luban安装文档:
1. 将MiniTemplate放到ET工程的根目录下,并重新命名为ConfigSource(根据个人喜好命名)。
2. 在ET/Tools目录下新建一个Luban文件夹,将Luban的相关工具(如Luban.ClientServer)放到这个文件夹下
3. 修改gen.bat文件,主要是Luban工具路径配置,生成文件目录的修改
## 二、ET、Unity工程配置
1. 需要将Luban的LubanLib加到自己Unity工程中,这边将他放入Assets\Scripts\Core\Module\Luban中。因为Core中的代码是双端共用的,而LubanLib中带的SimpleJSON是依赖UnityEngine的,所以这边把SimpleJSON文件夹放入Assets\Scripts\Loader\Plugins下
2. 配置文件的加载,参考ConfigSingleton,ConfigComponent,ConfigLoader等文件编写Luban相关配置的加载,这里本来尝试将Server端的LubanConfigLoader放到Module里,发现它在Client-Server模式下,Invoke会和Client一起被注册,导致ID重复。所以目前还是放在和自带的ConfigLoader一个位置,在DotNet.App工程下。
## 三、生成代码的定制
Luban生成的代码和数据可以通过模板自定义。为了尽量和ET的风格保持一致,这里自定义了Luban的Bean和Table的生成代码。定义在ConfigSource\CustomTemplates\config\cs\_bin的三个文件bean.tpl, table.tpl,tables.tpl中,主要就是命名Table为XXCategory,命名数据项为XXConfig。为了让生成的文件名也和ET保持一致,需要将修改tables.xlsx中的output文件名。