我在" 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>();