tolua正式学习(四-2)

接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

猜你喜欢

转载自blog.csdn.net/leisurely_orange/article/details/81700315