关于策划表
现在的ProtoBuf加载表的流程是
- 要加载某个表testTable
- txt手动转成json
- 用Bson把json反序列化为运行时对象
- 用ProtoBuf把运行时对象转成bytes数组
- 先读这个表的二进制文件 File.ReadAllBytes(*.bytes)
- 然后通过反序列化 ProtobufHelper.Deserialize(tableType,bytes) 得到一个object 再把object强转成对应的class
- 然后通过class的Get(int id)等等方法来得到
现在的ProtoBuf生成表的流程是
- 写一个.txt格式的Excel表,表名就是文件名
- 根据模板类,解析txt的类型、字段,生成表类,动态编译之。
- 然后,先手动生成一个对应的json文件(但是后缀名是
txt),json文件只有一个根节点list,然后节点下面是所有的内容
- 然后,好像也是手动生成一个对应的cs文件,注意这个类有很多特性,比如
- 这个类名字是表名+
Category
- 类用了
[ProtoContract]修饰
- 类用了
[Config]修饰,主要用来生成的时候找到对应的类?
- 然后有一个叫
list的List<表名类>,用来存储所有的表数据,同时和之前的[json](#json)对上表名类>
- 最后还有一个表名类,就是用来存储对应的字段
策划表原生一般是TXT格式的Excel表,
一个简单的表可能如下
//文件名就是表的名字
testTable.txt
//双引号开头的是注释
//第一行是数据类型
int float
//第二行是数据字段名称
ID damage
//第三行是数据字段的注释,会在生成的代码中
唯一ID索引,可不连续,不可重复 伤害量
//从第四行开始,每一行表示一个表的内容
0 0
1 1