我在“ 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
函数?
谢谢。
答案 0 :(得分:1)
您需要保留对lua脚本的返回值的引用作为DynValue对象,然后在Table属性中查找所需的函数。
DynValue dyn = scp.DoFile(GlobalConst.PATH_TO_SCRIPT_FOLDER + "Conversion.lua");
,然后您应该可以使用来调用函数
scp.Call(dyn.Table.Get("yourFunctionHere"), parameters).ToObject<double>();