使用LUA脚本返回的对象



我在" 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对象的返回值,然后在表属性中查找所需的函数。

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

您应该可以用

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

最新更新