《Unity3D高级编程 主程手记》第三章 数据表(二) 数据表的制作方式

制作方式简介

  1. 最简单的就是直接将 Excel 里的数据复制粘贴到文本文件中作为游戏数据。
  2. 手动导出为 CSV。
  3. 使用 Shell 或 Bat( Window 批处理)设计自动化流程操作。
  4. 通过特定语言编写自动化程序。
  5. 使用 Jenkins 来强化自动化流水线。
  6. 使用 Unity3D 的菜单栏编辑功能。

让数据使用起来更加方便 

        数据表的关键作用是连接游戏策划设计师与其他部门,所以我们在制定数据导入/导出规则的时候需要考虑设计师的体验因素。如何让策划在配置数据表的时候能够有更好的体验就成了关键。

        只有好用才能提高效率。前面提到的自动化就是提高效率的一种方法,还有比如一键转化XXX,这种形式的也是提高效率的好办法。

团队间、部门间、工种间的配合

情况:如果只是单个表有了自动化,策划设计人员可以自由的将 Excel 数据转化成能让程序员读取的数据格式。

        问题一:如果数据经常变动,每次更改都需要及时得到通知程序员。

        解决:将单个表变为多个表的自定义配置,将所有策划内容的数据表和导出规则都由策划来指定填写。 在程序命令中预留几个参数,参数指向某个需要导出的文件及 sheet。那么在命令行里,执行这个程序且后面跟上参数就能导出数据。

        问题二:策划并不能很好的控制对表的导出内容。比如要新增一个表,或者修改某个表的文件名,或者修改某个表文件里的 sheet,这项工作还是需要修改命令行来完成。

        解决:可以增加一个 Excel 表,表中填有具体要导出哪些 Excel 文件里的哪个 sheet,这些 sheet 的数据导出后的文件名是什么,以及生成文件后应该转移到哪个文件夹中去。

        问题三:如果设计人员改了字段名字,插入了新的字段,删除了字段,又没有及时通知程序员,或者说忘记了自己做过什么,就需要全盘彻查。

        解决:增加让 Excel 字段名与程序对应的规则。编写一个程序,让程序生成一段代码,这段代码里变量定义的数字和每个数据表上字段名的索引对应,将每个要导出的 sheet 里的头行的列名作为变量名写入程序变量定义中,以方便程序在读取数据表时列名与数据表对齐。这样不仅有了读取数据表列的 Key 值,还无形中进行了表数据与程序索引的校验。

        最终效果:让策划设计人员完全可以自己控制 Excel 数据表的操作,又加入了检查校验和修复的功能,让程序员在数据表衔接部分也能进行检查和校验。

例子

IDNameAge
1000ROLR_NAME_020
1001ROLR_NAME_121

生成的索引对齐方式代码:

public Class ExcelDefine
{
    public const int role_role_ID = 1;
    public const int role_role_Name = 2;
    public const int role_role_Age = 3;
}

//获取名字的例子
string role_name_str = RoleTable.GetStr(ExcelDefine.role_role_Name);
int table_role_id = RoleTable.GetInt(ExcelDefine.role_role_ID);

策划修改之后:

IdentifierSchoolName
1000SCHOOL_0ROLR_NAME_0
1001SCHOOL_1ROLR_NAME_1

生成的代码如下:

public Class ExcelDefine
{
    public const int role_role_Identifier = 1;
    public const int role_role_School = 2;
    public const int role_role_Name = 3;
}

//原本的代码会报错
string role_name_str = RoleTable.GetStr(ExcelDefine.role_role_Name);
int table_role_id = RoleTable.GetInt(ExcelDefine.role_role_ID);
//应该改成以下代码
string role_name_str = RoleTable.GetStr(ExcelDefine.role_role_Name);
int table_role_id = RoleTable.GetInt(ExcelDefine.role_role_Identifier);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值