ET框架的Excel配置器
Excel配置器作用
Excel文件的配置主要用以配置数据持久化对象的数据,并且可以根据Excel中设置的字段,自行创建持久化的类,并将配置的数据进行实例化,放入config配置文件的字典中。
使用方式即为打开ET/Excel文件夹,Windows下双击运行win_startExcelExport.bat
文件即可完成对Excel内容的读取和配置生成相应的源码并将数据实例化成持久化对象。
Excel配置的规则
UnitConfig.xlsx
-
绿色位置第一行为描述,第二行为字段名称,第三行为字段类型(特殊类型需拓展)
-
左上角的第一个表头必须在3行3列,且其名称和字段名都必须是Id,类型为int,且此列绝不可重复
-
#放在一行或一列前代表忽略此行,在读取配置文件时会自动忽略此行或列。
-
数据的配置必须符合字段类型,不合法会报错
- 在列或行前若不添加s或c,则默认会将配置代码和文件同时生成到客户端和服务端下,若配置后,可指定此列或行只配置进客户端或服务端。
- 若在Excel左上角填写s或c则会指定整个excel配置是在服务端还是客户端下
- 配置会自动忽略空白行,可以在空白行前添加#注释 对数据进行分类
- 若Excel表存在多个表单,其不同表单对应的表头必须一致,其会自动将不同表单的数据合并,表头不一致会报错。
- 若想要忽略表单,可以在表单名前加#符号
生成的配置文件查看
在配置好相关的Excel表格后,每次修改后都需要运行目录下的.bat文件会生成代码文件并生成配置文件。在ET/Config和Unity/Assets/Bundles/Config下的bytes文件是经过protobuf序列化的文件,不是明文。
在ET/Bin/Json目录下可查看明文的json配置文件,分为client和server的配置文件。
配置生成的源码规则
UnitConfig.xlsx
UnitConfig.cs
UnitConfigCategory 单例类
可以看出Excel配置文件会产生两个基于Excel表明的数据持久化类和其Category类
-
数据持久化类的字段名和类型和excel表头字段名和类型一一对应
-
Category类会存有数据持久化类具体的实体对象的集合(字典和列表),字典的键就是excel固定的Id字段的值
-
Category类提供了UnitConfig Get(id) 和Dictionary GetAll()的方法供外部进行获取持久化对象
持久化类的拓展
有时自动生成的Category类或持久化类并不能满足需求,需要对其进行方法或字段属性上的拓展(例如想通过身高找特定UnitConfig),可以利用partial关键字进行拓展,此关键字修饰的同名类在编译时会共享属性和方法,相当于将两个类合并起来。
一般会在Generate文件夹下创建一个ConfigPartial文件夹存放拓展的partial类
UnitConfigPartial.cs
其中类名放入需要拓展的同名类
实现此类后,就可用Category单例类通过身高获取特定的UnitConfig对象了。
Category还提供了EndInit当初始化完成后,AfterEndInit在EndInit后等等多样的回调函数的虚方法,也可在拓展partial中进行重写,比如为UnitConfig拓展新变量,当初始化结束后就自动用初始字段为拓展变量进行初始化。
举例如下,为UnitConfig持久化类添加三维向量,三维向量存储对象的三维(位置,身高,体重)
支持的数据类型及数组用法
在ExcelExporter.cs中可以查看支持的类型
特殊用法
- 数组类型的使用 : 采用逗号进行间隔即可