测试修改
This commit is contained in:
@@ -1,13 +1,17 @@
|
||||
# ExcelTool(Unity打表工具)
|
||||
|
||||
通用CSV/Excel打表工具
|
||||
|
||||
#### 前言
|
||||
|
||||
目前项目中用的csv转json工具,会带来严重的gc性能问题,例如启动加载慢,影响帧率等问题,转成的json数据,我们需要手动写对应的解析模板代码,所以针对以上问题,本通用打表工具应运而生,用二进制数据替代json数据会比较好的解决性能问题,而且能够自动生成对应的模板代码,节省了写重复代码的时间,而且二进制数据比json读取速度更快,文件大小更小。
|
||||
|
||||
#### 说明
|
||||
|
||||
因为csv有默认的逗号,这跟表中内容配置逗号会有冲突,不利于解析,所有产生了加强版的ExcelTool,读取路径下的csv和excel表格,如果是csv的这先转换成xlsx的excel,然后统一对excel进行数据读取解析操作,生成完之后再把csv生成的excel删掉,确保目录保持原样,所以ExcelTool是CsvTool的升级版
|
||||
|
||||
#### 功能
|
||||
|
||||
* 支持csv和Excel的打表
|
||||
* 生成对应的数据模板代码
|
||||
* 支持生成模板代码字段注释
|
||||
@@ -17,17 +21,20 @@
|
||||
* 字段不配置会使用默认数值
|
||||
|
||||
#### 目前支持的字段
|
||||
|
||||
* 常规的字段,例如int,float,string,bool,long,list,intlist,longlist,floatlist,boollist,List<T> 大小写不限
|
||||
* 支持自定义字段 vector,例如[1,2,3]
|
||||
* 支持自定义字段 list,其实是vector数组,例如[[1,2,3],[2,3,4],[4,5,6]]
|
||||
|
||||
#### 效果
|
||||
|
||||

|
||||
|
||||

|
||||
相比较json,二进制文件大小只有其1/4
|
||||
|
||||
##### 自动生成的模板代码
|
||||
|
||||
```
|
||||
/*
|
||||
* auto generated by tools(注意:千万不要手动修改本文件)
|
||||
@@ -191,7 +198,9 @@ public partial class avatarguideTestConfig : IBinarySerializable
|
||||
```
|
||||
|
||||
#### 使用案例
|
||||
|
||||
##### 解析二进制文件
|
||||
|
||||
```
|
||||
IBinarySerializable newavList = new avatarguideTestList();
|
||||
var readOK = FileManager.ReadBinaryDataFromFile(Path.Combine(path, "avatarguideTest.dat"), ref newavList);
|
||||
@@ -204,10 +213,13 @@ else
|
||||
ConsoleHelper.WriteErrorLine("读取失败");
|
||||
}
|
||||
```
|
||||
|
||||

|
||||
|
||||
##### Unity解析二进制
|
||||
|
||||
将二进制文件(后缀必须是.bytes)放在Resources目录,然后通过Resources.Load接口加载
|
||||
|
||||
```
|
||||
var bytes = Resources.Load<TextAsset>("avatarguideTest");
|
||||
if (bytes == null)
|
||||
@@ -233,6 +245,7 @@ else
|
||||
```
|
||||
|
||||
#### 泛型读表
|
||||
|
||||
```
|
||||
T ReadTable<T>(string tableName) where T : IBinarySerializable, new()
|
||||
{
|
||||
@@ -253,7 +266,9 @@ if (bytes != null)
|
||||
return default(T);
|
||||
}
|
||||
```
|
||||
|
||||
##### 查询数据
|
||||
|
||||
```
|
||||
var avatarguideTest = (avatarguideTestConfig)newavList;
|
||||
var obj = avatarguideTest.QueryById(2);
|
||||
@@ -262,6 +277,7 @@ if (obj != null && obj.Count() > 0)
|
||||
```
|
||||
|
||||
#### 自动化拷贝批处理
|
||||
|
||||
```
|
||||
@echo off
|
||||
|
||||
@@ -277,9 +293,11 @@ pause
|
||||
```
|
||||
|
||||
#### 扩展类方法
|
||||
|
||||
上面的config类采用的是partical class 就是为了方便扩展自定义的方法,如果想要添加自定义方法也定义一个partical class文件作为扩展即可
|
||||
|
||||
#### 待扩展的功能
|
||||
|
||||
目前还不是最理想的状态,还有很多可以扩展完善的功能,如下:
|
||||
|
||||
* 支持生成各种类型的文件,例如json、xml、proto、lua等
|
||||
@@ -290,9 +308,13 @@ pause
|
||||
* 支持枚举类型
|
||||
|
||||
#### 代码
|
||||
|
||||
https://github.com/dingxiaowei/ExcelTool 喜欢麻烦点个star吧
|
||||
|
||||
#### Unity客户端使用范例
|
||||
|
||||
采用的美术效果机型适配商业化解决方案Demo
|
||||
https://github.com/dingxiaowei/DeviceGrading
|
||||
优雅的表格使用范本
|
||||
todo:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user