使用 Lua 脚本返回的对象

Use object returned by Lua script

我在 "Conversion.lua" 文件中有这个 lua 脚本:

local conversion = {}

function conversion.mmToin( value )
    return value * 0.0393701
end

return conversion

我需要在 C# 代码中使用函数 mmToin,包含在对象 conversion.

如果函数不在对象内部,我会使用以下代码:

Script scp = new Script();
scp.DoFile(GlobalConst.PATH_TO_SCRIPT_FOLDER + "Conversion.lua");
double resultFm = scp.Call(scp.Globals["mmToin"], 1).ToObject<double>();

但是如果我把它放在一个对象中,我就不能使用这个函数;我试过:

double resultFm = scp.Call(scp.Globals["conversion.mmToin"], 1).ToObject<double>();

但不工作。

如何在 C# 代码中使用 mmToin 函数? 谢谢。

您需要将 lua 脚本返回值的引用作为 DynValue 对象,然后在 Table 属性.[=12 中查找所需的函数=]

DynValue dyn = scp.DoFile(GlobalConst.PATH_TO_SCRIPT_FOLDER + "Conversion.lua");

然后您应该可以使用

调用您的函数
scp.Call(dyn.Table.Get("yourFunctionHere"), parameters).ToObject<double>();