近几年移动端游戏大热,Unity + Lua更是手游行业的标配技术。如何有效利用有限的硬件条件,实现当前高品质、高规格的游戏产品是持久不变的话题。 Lua作为一个极为精简的嵌入型脚本语言,已经广泛地用在了游戏业,Lua的存在一般是两种场合,一种用于实现游戏上层业务逻辑,一种则利用了Lua语言本身灵活简单的数据表达能力而被广大程序员用于数据的存储,也就是常说的配置文件。
一般来说配置文件的初始来源是策划维护的有着一定格式约束的Excel表格,经由程序员提供的导出工具,把Excel的表格数据导出成为游戏能直接读取使用的Lua源码。
这些源码文件以Lua table的形式存储与Excel等价的数据,通常可以简单把这个配置表看成是一组2维数组,转换成配置就是一个key(Excel第一列)对应一组子数据(Excel中一行),那么整个配置数据就是一个大表包含着若干小表转换成配置就是一个key(Excel第一列)对应一组子数据(Excel中一行),那么整个配置数据就是一个大表包含着若干小表,如下:
原始配置表:
转换成Lua后大致是这样:
local mapsetting =
{
[1] = {
name = "map1",
useminimap = "map1000",
show_name = "十里桃林",
cam_pitch = 40,
cam_yaw = 230,
cam_dis = 10,
pkflag_support = 1,
pkflag_punish = 1,
maxnum = 50,
scheduleConf = {},
scriptId = {},
...
},
[2] = {
name = "map2",
useminimap = "map1000",
show_name = "碧波潭",
cam_pitch =