次のメソッドをセットアップして、ある lua 状態から別の 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 } です。テーブルテーブルがヌルです。代わりに、tableFunc を null にする必要があり、tableTable にはスコープ 2 で定義されたテーブルを含める必要があります。