UH2S3L8——访问Lua中table

本章代码关键字

1
2
luaTable.GetLuaFunction()    //获取表中的函数
luaTable.GetTable<>() //获取表中的表

访问Lua中table

对于下面用table模拟的Class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- lua中的一个自定义table(模拟类)
testClass = {
testInt = 2,
testBool = true,
testFloat = 1.2,
testString = "123",
testFun = function()
print("表中的函数打印")
end,
testTable = {
testTableInt = 111,
testTableBool = true,
}
}

如果要获取表中的变量,直接使用中括号索引获取即可

1
2
3
4
5
LuaTable luaTable = LuaManager.Instance.LuaState.GetTable("testClass");
print(luaTable["testInt"]);
print(luaTable["testBool"]);
print(luaTable["testFloat"]);
print(luaTable["testString"]);

image

如果要获取表中的函数,直接使用GetFunction()​方法即可获取

1
2
LuaFunction luaFunction = luaTable.GetLuaFunction("testFun");
luaFunction.Call();

image

如果要获取表中的表,直接使用GetTable()​方法即可获取

1
2
3
LuaTable luaTable2 = luaTable.GetTable<LuaTable>("testTable");
print(luaTable2["testTableInt"]);
print(luaTable2["testTableBool"]);

image