excel proto 转_UnityExcelPlugin

通用流程图

通用流程图简述

以hello.xls为例

在python运行时下,依赖proto组件、xlrd的组件,使用xls_deploy_tool.py处理Hello.xls,生成Hello.data数据文件、及其对应的Hello.proto解释类。

在windows系统下,使用protoc.exe,将proto解释类转成中间格式Hello.desc。

将中间格式Hello.desc用语言工具翻译成其他语言解释类比如c#解释类Hello.cs。

将中间格式Hello.desc用语言工具翻译成其他语言解释类比如c#解释类Hello.cs。

所需工具以及安装流程

安装python

安装python,并将路径添加到本地的环境变量的path中

安装protobuff

1.找到下载的工具包中的“全文件压缩包”(protobuf-2.5.0.tar.bz2)和“编译器压缩包”(protoc-2.5.0-win32.zip)。

2.将“protobuf-2.5.0.tar.bz2”解压。

3.将“protoc-2.5.0-win32.zip”解压,并将目录添加到本地的环境变量的path中。

4.在里面创建compiler文件夹,即protobuf-2.5.0\python\google\protobuf\compiler。

5.将“编译器压缩包”里的protoc.exe拷到protobuf-2.5.0\src。

6.用命令行进入刚解压的protobuf\python目录,执行命令python setup.py install。

安装xlrd(xls reader)

1.这里是列表文本 找到下载的工具包中的xlrd-0.9.4.tar.gz并解压

2.用命令行进入刚解压的xlrd目录,执行命令python setup.py install

xls_deploy_tool.py介绍

使用方法是在命令行键入如下命令

python xls_deploy_tool.py

它将“符合格式”的xls文件生成data文件和proto文件

“符合格式”指的是要求xls的每一列的前4行用于定义数据格式。例子如图:

详细格式文档可参考xls_deploy_tool.py 的文件注释。

4. xls_deploy_tool.py生成的文件

1. 生成的data文件是最终在游戏内进行读取的数据文件,以protobuff定义的格式进行压缩存储(或者明文存储,但xls_deploy_tool.py暂时只实现了压缩存储)

2. 生成的proto文件是用于解释上面这个data文件的解释类。

5. 具体命令行的使用请参考tools/kill.bat

插件在项目中的使用

1. 目录结构

ExcelPlugin 插件总目录

Editor 插件的扩展插件 (具体请看代码)

Plugins 第三方库文件

Scripts 插件的基础脚本

Scene 场景目录

Scripts 脚本

Killer

DataConfig

ProtoGen

tnt_deploy_goods_info goods_info数据表的C#代码

tnt_deploy_goods_info_Ext goods_info数据表的C#类的扩展

StreamingAssets Streaming目录

DataConfig 配置目录

DataConfig 配置目录,需要将所需生成的excel内容添加进去

tnt_deploy_goods_info goods_info.excel生成的数据存储文件

tnt_deploy_hero hero.excel生成的数据存储文件

2. 使用流程(以hero.xls为例)

1. 将hero.xls放到tools/DataConfig目录中

2. 在Assets/StreamingAssets/DataConfig/DataConfig文件中添加hero,最后结果为下图所示

3.点击unity3d导航栏Editor--ExcelToolEditor,打开编辑器。选中hero,点击生成。

工具会自动在Assets/Scriptes/Killer/DataConfig/ProtoGen目录生成tnt_deploy_hero.cs和tnt_deploy_hero_Ext.cs

如果excel有唯一标识,修改_Ext.cs文件中的GetId接口

还会在Assets/StreamingAssets/DataConfig目录生成tnt_deploy_hero.data存储信息

4.在代码中使用

获取所有英雄信息:List heros = ProtoDatabase.Instance.GetData();

根据英雄id获取英雄信息:HERO hero = ProtoDatabase.Instance.GetTypeAndId(1);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值