c#取Lua值紀錄
最近在專案上要使用Lua去做熱更新
所以研究了一下Lua的寫法 以及C#跟Lua的互調
Lua程式碼
function getString()
local x = "aaa"
return x
end
c#取得值程式碼
Lua m_lua = new Lua();
string str =Convert.toString(m_lua.GetFunction("getString").Call());
假如Lua程式碼為閉包
function num()
local i = -1
return function ()
i=i+1
return i
end
end
在這樣情況下 c#取值
Lua m_lua = new Lua();
int num = Convert.toInt32(m_lua.GetFunction("num").Call());
會報出 InvalidCastException: Specified cast is not valid. 錯誤訊息
必須要更改Lua寫法
function getNum()
local n = num()
return n()
end
c#改為
Lua m_lua = new Lua();
int num = Convert.toInt32(m_lua.GetFunction("getNum").Call());
這樣才取得到值