将对象从c#传递到Lua脚本
本文关键字:Lua 脚本 对象 | 更新日期: 2023-09-27 18:10:51
我正在使用c#的luainterient,并且已经正确设置了一切
我想要能够做的是,当脚本使用lua.DoFile()启动时,脚本可以访问一个播放器对象,我可以发送…
当前代码:public static void RunQuest(string LuaScriptPath, QPlayer Player)
{
QMain.lua.DoFile(LuaScriptPath);
}
但是正如你所看到的,脚本将无法访问Player对象
我看到两个选项。第一个是让你的播放器成为Lua的一个全局变量:
QMain.lua['player'] = Player
那么你就可以在你的脚本中访问player
第二个选项是让脚本定义一个接受player作为参数的函数。因此,如果当前脚本包含...code...
,现在它将包含:
function RunQuest(player)
...code...
end
和你的c#代码看起来像这样:
public static void RunQuest(string LuaScriptPath, QPlayer Player)
{
QMain.lua.DoFile(LuaScriptPath); // this will not actually run anything, just define a function
QMain.lua.GetFunction('RunQuest').Call(player);
}