2

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

local conversion = {}

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

return conversion

我需要mmToin在 C# 代码中使用包含在 object 中的函数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>();

但不工作。

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

4

1 回答 1

1

您需要保留对 lua 脚本返回值的引用作为 DynValue 对象,然后在 Table 属性中查找所需的函数。

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

然后你应该能够调用你的函数

scp.Call(dyn.Table.Get("yourFunctionHere"), parameters).ToObject<double>();
于 2019-03-04T11:58:37.570 回答