1. 前言
在游戏项目中,Lua一般被广为使用在UI界面上,因为其轻巧,简便,支持热更新等特点。当然,有的游戏的单局中也使用了Lua。
然而Lua语言的缺点也很明显,因为是弱类型语言,有的编码上的错误不容易被发现。例如变量名的错误拼写并不会带来编译的错误。
比如游戏中有个配置文件,存放了各个数据模型的定义:
DataModelDef = DataModelDef or
{
}
DataModelDef.FubenConfigDataModel =
{
FubenId = 0;
FubenDifficulty = 0;
FubenName = "";
}
DataModelDef.MonsterConfigDataModel =
{
MonsterId = 0;
MonsterResPath = "";
MonsterName = "";
}
DataModelDef.TalkContentDataModel =
{
SenderId = 0;
RecipientId = 0;
Content = "";
UserData = nil;
}
定义了游戏中某些数据模型,然而在使用过程中可能由于编码错误导致BUG发生,如下:
_TalkContentDataModel.Userdata = ....
if _TalkContentDataModel.Userdata ~= nil then
....
end