Unity3D高级编程主程手记 学习笔记三:数据表与程序
什么是数据表?有什么用?
数据表相当于一个只读的外部数据库,用来存储着游戏内的各种数据项。数据表是连接了美术、设计策划和程序的桥梁。艺术家用它来配置效果,设计师用它来调整游戏内数值平衡,程序员用它来判断逻辑,所以数据表的意义十分重大。
数据在游戏中存储有几种方式,最初的就是代码数据,所有数据都使用代码进行存储,只有程序员知道这些数据是什么,为什么要这样写。但随着数据增大,使用规则逐渐复杂,数据的修改次数逐渐增加时,工作效率会大幅下降。
文本是常用的一种数据表形式,使用JSON,EXCEL。XML文件都有。不同文本有自己的组织规则,使用时需要区分。除此之外,还有比特流数据,比特流虽然解析更快,占用空间更小,但是通用性比较差。
数据表的制作方式
Excel是大部分数值策划喜欢使用的填数工具,但需要多个Excel文件转化为文件数据时,会遇到一些麻烦。
比如,我们手动导入时常常想有没有复制粘贴错误了?对这种重复工作久而久之就会犯错误。所以我们会想到使用程序将数据导入导出进行自动化操作,主流的制作自动化程序工具有Shell,Bat等。或者编写特定的程序脚本实现这个操作。
让数据使用更加方便
数据表的关键作用是连接游戏策划设计师与其他部门,所有我们在制定数据导入/导出规则时,需要考虑设计师的体验因素。因此我们要让我们设计的数据表让策划进行配置时能够有更好的体验。
并且,只是对单独的表进行自动化还不够,因为策划可能对字段进行频繁的增删改查,因此我们追求的是将单个表变为多个表的自定义配置,所有策划内容的数据表和导出规则都由策划来指定填写。
解决上述问题一个可行的办法就是:在程序命令中预留几个参数,参数指向某个需要导出的文件及sheet。只用使用命令行加参数就可以导出数据。但这还不够,因为策划不会写代码,也不会使用命令行。我们可以增加一个Excel表,表中填有具体要导出哪些Excel文件里的哪个sheet。
多语言实现
多语言实现,也可以通过自制Excel表格来实现,当然Unity中也有一个非常方便的插件 I2 location,可以用来实现多语言。