无法在 NLua 状态之间传递值

我设置了以下方法来复现我正在遇到的问题,即将一个lua状态中的表通过另一个函数参数传递到另一个状态中时,表将为 null。

在这种情况下,该表似乎被解释为函数。我不知道为什么。

Lua scope = new Lua();
Lua scope2 = new Lua();
scope2.DoString("t = { Data = 3 }");
scope.DoString("function values(key, model) return key, model end");
var func = (LuaFunction)scope["values"];
var t = (LuaTable)scope2["t"];
object[] results = func.Call("Hello", t);
var tableFunc = results[1] as LuaFunction;
var tableTable = results[1] as LuaTable;
object[] tableFuncResult = tableFunc.Call();

运行此代码段后,tableFuncResult 的值为对象数组 { null, null }。tableTable 为 null。相反,tableFunc 应为 null,tableTable 应包含在 scope2 中定义的表。

点赞