接tolua正式学习(四-1)
LuaFunction func = lua["TestFunc"] as LuaFunction;将lua方法转换成C#,之后通过LuaFunction.Call进行调用 LuaFunction.Call方法有多种重载方式
尝试给方法进行赋值,但无效,因方法未调用传入的参数。 进行修改lua结构,及代码模块,进行传参尝试具体如下:
private string script =
@"
print('Objs2Spawn is: '..Objs2Spawn)
var2read = 42
varTable = {1,2,3,4,5}
varTable.default = 1
varTable.map = {}
varTable.map.name = 'map'
meta = {name = 'meta'}
setmetatable(varTable, meta)
function TestFunc(strs)
print('get func by variable')
end
function TestFunc2(num)
if(num<10)then
print('get func by variable')
else
print('get func by variable big number')
end
end
";
LuaFunction func = lua["TestFunc2"] as LuaFunction;
func.Call<int>(5);
func.Dispose();
LuaFunction func2 = lua["TestFunc2"] as LuaFunction;
func2.Call<int>(20);
func2.Dispose();
结果第一次输出原文,第二次输出big number