为什么是使用Lua
脚本语言的优势:
大部分脚本语言相对C++这种高级编辑语言来说,都语法简单,通俗易懂
使用脚本语言可以减少游戏的编译时间,甚至在游戏运行时可以修改脚本,不需要去重新编译启动。
脚本语言一般是弱类型。C++需要自己实现一套反射机制
游戏中用的比较多的脚本是lua,python。手机游戏开发居多的是lua。lua具有轻巧,速度快的特点,与C交互操作方便。
怎么在unity中使用xLua
xlua 加入工程。lua和c#交互和C++差不多。主要是把Lua源码编译成dll,在C#进行调用。
一个好的lua结构:
新建一个main.lua文件,在C#调用dostring("require main")
lua面向对你编程,很多人采用的cococs2dx的class方式。这里推荐另外一种简洁方式
function Class(base, _ctor)
local c = {}
if not _ctor and type(base) == 'function' then
_ctor = base
base = nil
elseif type(base) == 'table' then
for i,v in pairs(base) do
c[i] = v
end
c._base = base
end
c.__index = c
local mt = {}
mt.__call = function(class_tbl, ...)
local obj = {}
setmetatable(obj,c)
if _ctor then
_ctor(obj,...)
end
return obj
end
c._ctor = _ctor
setmetatable(c, mt)
return c
end
使用的时候类似C风格,直接tabletest()就可以了。不再需要像Cocos2dx使用tabletest.new()