有没有一种方法可以使用C#将数据动态输入lua脚本?
我正在尝试使用C#/Lua实现以下逻辑: 在我的C#应用程序中,我有一个带有文本框的表单,允许我输入一个信号值,然后通过(state[“timeToCollection”]=signalValue.Text;)将其传递给Lua脚本。这个想法是,当这个值等于“low”时,就会发生其他一些调用 我目前面临的问题是,这个signalValue.Text需要在执行Lua脚本之前填写,而不是在执行它之后填写(期望的行为)。是否有一种方法可以动态执行此操作,也就是说,我执行Lua脚本,Lua脚本检查signalValue.Text值,如果该值不低,它将一直运行,直到用户在表单中输入low 谢谢 C# Lua脚本:有没有一种方法可以使用C#将数据动态输入lua脚本?,c#,lua,C#,Lua,我正在尝试使用C#/Lua实现以下逻辑: 在我的C#应用程序中,我有一个带有文本框的表单,允许我输入一个信号值,然后通过(state[“timeToCollection”]=signalValue.Text;)将其传递给Lua脚本。这个想法是,当这个值等于“low”时,就会发生其他一些调用 我目前面临的问题是,这个signalValue.Text需要在执行Lua脚本之前填写,而不是在执行它之后填写(期望的行为)。是否有一种方法可以动态执行此操作,也就是说,我执行Lua脚本,Lua脚本检查sign
function DM()
while (timeToCollision == 'low')
do
UDC:eventImageDataReq('AutoHitch',01)
end
end
DM()
您有Lua解释器,因此要设置变量,只需设置它:
state.DoString($"timeToCollision = '{signalValue.Text}'");
您没有提到您正在使用什么风格的C#Lua绑定,但例如
MoonSharp
,因为它是Lua的完全托管重新实现,直接公开变量表,所以您可以使用类似state.Globals[“timeToCollision”]
的方法直接设置值,无需解析和执行Lua代码。您拥有Lua解释器,因此要设置变量,只需设置它:
state.DoString($"timeToCollision = '{signalValue.Text}'");
您没有提到您正在使用什么风格的C#Lua绑定,但例如
MoonSharp
,因为它是Lua的完全托管重新实现,直接公开变量表,所以您可以使用类似state.Globals[“timeToCollision”]
的方法直接设置值,无需解析和执行Lua代码。您使用哪个c#库来执行Lua代码?您使用哪个c#库来执行Lua代码?在这种情况下,直接公开变量可能不起作用,因为我需要Lua脚本来实现逻辑,而不是相反,直到从c#传递低值为止应用目前我面临的问题是,当Lua脚本进入while循环时,整个c#from就会冻结:/n在这种情况下直接公开变量可能不起作用,因为我需要Lua脚本来实现逻辑,而不是相反,直到从c#应用程序传递低值。目前我面临的问题是,当Lua脚本进入while循环时,整个c#from就会冻结:/