游戏开发中,静态数据一般是策划配置的,一般采用excex编辑或写数据编辑器输出数据,那么问题来了,如果使用excel,策划配置好的excel输出成什么格式更方便程序使,又好维护呢?
方法一 json
优点:通用,易读,数据可以嵌套
缺点:操作麻烦,二次编辑麻烦
方法:excel先输出成txt,格式为制表符分隔或unicode,然后写工具将txt转成json格式,然后程序中使用json格式读取解析,当然你也可以不转json格式,程序中直接用对应的解析方式解析,但一般数据表会给客户端和服务器同时使用,而json格式比较通用,易读,客户端和服务器不同编程语言大多都能找到对应的解析类库,并且json数据格式可以嵌套,如果做数据编辑器的话,数据格式清晰,但转成json格式完全为了统一方便,并不是必要的
方法二 csv
优点:excel可直接打开,可以二次编辑,易读,
缺点:数据不可以嵌套,编码限制
方法:输出成csv,csv格式有个天生的优势,就是excel可以直接打开,这样策划可以二次编辑,更便于维护,易读性更高,但excel对csv会做一些处理
当内容中有英文逗号时,会在内容前后自动添加英文引号,因为csv是以英文逗符为列分隔符,excel为了区别所以自动添加,但打开后转码后又将去掉,然后显示出来
编码也有要求,excel保存csv的编码是GB2312,并且打开时也需要是,不然中文会显示成乱码,英文不受影响
其实方式,包括二进制或自己定义的格式,只要保存的数据和解析方对应上就可以,不同情况时使用适应的就好,(注意文件大小,后期可维护性,可读性)
如果不考虑数据编辑器的话,单纯说excel,推荐第二种方法,数据嵌套也不是必须的,程序中完全可以解析后在重新组织合适的数据结构
下面说下unity开发中,使用csv的陷阱
在unity开发中,一般资源或文本数据大多会使用Resource.Load方法,这个方法可以加载资源或其它格式,大家都应该很熟悉,我们加载csv后,会强转成T