為什么是使用Lua
腳本語言的優(yōu)勢:
大部分腳本語言相對C++這種高級編輯語言來說释簿,都語法簡單责语,通俗易懂
使用腳本語言可以減少游戲的編譯時間僻他,甚至在游戲運行時可以修改腳本兽狭,不需要去重新編譯啟動。
腳本語言一般是弱類型岔留。C++需要自己實現(xiàn)一套反射機制
游戲中用的比較多的腳本是lua夏哭,python。手機游戲開發(fā)居多的是lua献联。lua具有輕巧竖配,速度快的特點,與C交互操作方便里逆。
怎么在unity中使用xLua
xlua 加入工程进胯。lua和c#交互和C++差不多。主要是把Lua源碼編譯成dll运悲,在C#進(jìn)行調(diào)用龄减。
一個好的lua結(jié)構(gòu):
新建一個main.lua文件项钮,在C#調(diào)用dostring("require main")
lua面向?qū)δ憔幊贪嗝校芏嗳瞬捎玫腸ococs2dx的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風(fēng)格,直接tabletest()就可以了署隘。不再需要像Cocos2dx使用tabletest.new()