我在“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属性中查找所需的函数。
DynValue dyn = scp.DoFile(GlobalConst.PATH_TO_SCRIPT_FOLDER + "Conversion.lua");
然后你应该能够调用你的函数
scp.Call(dyn.Table.Get("yourFunctionHere"), parameters).ToObject<double>();