使用 Lua 脚本返回的对象
Use object returned by Lua script
我在 "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 属性.[=12 中查找所需的函数=]
DynValue dyn = scp.DoFile(GlobalConst.PATH_TO_SCRIPT_FOLDER + "Conversion.lua");
然后您应该可以使用
调用您的函数
scp.Call(dyn.Table.Get("yourFunctionHere"), parameters).ToObject<double>();
我在 "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 属性.[=12 中查找所需的函数=]
DynValue dyn = scp.DoFile(GlobalConst.PATH_TO_SCRIPT_FOLDER + "Conversion.lua");
然后您应该可以使用
调用您的函数scp.Call(dyn.Table.Get("yourFunctionHere"), parameters).ToObject<double>();