C# 将简单int更改为可由引用传递到Lua脚本程序的对象
我正在开发一个程序,控制游戏中的角色。 我希望我的用户能够在我的程序中为游戏编写Lua脚本 在我的程序中有一个C# 将简单int更改为可由引用传递到Lua脚本程序的对象,c#,lua,runtime,C#,Lua,Runtime,我正在开发一个程序,控制游戏中的角色。 我希望我的用户能够在我的程序中为游戏编写Lua脚本 在我的程序中有一个int变量,int SelfManaPc,它以这种方式传递到scripter中:lua_编译器[“SelfManaPc”]=SelfManaPc 在我的主程序中,这个变量在另一个线程中被快速更改。 我的问题是,它只将值传递给Lua脚本程序,而不是指针。 在C#程序中更改值后,在Lua脚本中它不再更改 我已经制定了我的解决方案,它运行得非常好(SelfManaPc现在是我自己类的对象Int
int
变量,int SelfManaPc
,它以这种方式传递到scripter中:lua_编译器[“SelfManaPc”]=SelfManaPc代码>
在我的主程序中,这个变量在另一个线程中被快速更改。
我的问题是,它只将值传递给Lua脚本程序,而不是指针。
在C#程序中更改值后,在Lua脚本中它不再更改
我已经制定了我的解决方案,它运行得非常好(SelfManaPc
现在是我自己类的对象Integer
,因此我可以传递指针而不是值)
C级:
Lua代码中的使用示例:
while true do
Say(SelfManaPc:Get())
Sleep(2000);
end
如果没有别的办法,我就这样离开。但是,我想先问问你们中的任何一位,关于其他的想法。访问<代码> int >代码有点愚蠢,用<代码>获取<代码> >代码> SET<代码>,所以有些人可能知道一些好的技巧。 < P>如果你的脚本中有几个这样的变量,你可以考虑把它们放在一个全局表中,例如命名为代码>选项< /代码>。然后向该表中添加一个元表:\uuuu index
元方法返回给定名称的变量的值,而\uuuu newindex
元方法为给定名称的变量设置一个新值
如何实现这一点取决于用于C#的绑定库
Lua代码中的使用示例:
while true do
Say(SelfManaPc:Get())
Sleep(2000);
end
为true时执行
说(options.SelfManaPc)
睡眠(2000年)
options.SelfManaPc=1000--设置新值
睡眠(500)
结束
首先,请看一看这个问题:您是否尝试使用ref关键字传递它,以通过引用而不是通过值传递?我只是不确定这在你的情况下是否可行