使用Lua脚本返回的对象

问题描述 投票:2回答:1

我在“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函数?谢谢。

c# lua moonsharp
1个回答
1
投票

您需要将对lua脚本的返回值的引用保留为DynValue对象,然后在Table属性中查找所需的函数。

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

然后你应该能够调用你的函数

scp.Call(dyn.Table.Get("yourFunctionHere"), parameters).ToObject<double>();
© www.soinside.com 2019 - 2024. All rights reserved.