Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将简单int更改为可由引用传递到Lua脚本程序的对象_C#_Lua_Runtime - Fatal编程技术网

C# 将简单int更改为可由引用传递到Lua脚本程序的对象

C# 将简单int更改为可由引用传递到Lua脚本程序的对象,c#,lua,runtime,C#,Lua,Runtime,我正在开发一个程序,控制游戏中的角色。 我希望我的用户能够在我的程序中为游戏编写Lua脚本 在我的程序中有一个int变量,int SelfManaPc,它以这种方式传递到scripter中:lua_编译器[“SelfManaPc”]=SelfManaPc 在我的主程序中,这个变量在另一个线程中被快速更改。 我的问题是,它只将值传递给Lua脚本程序,而不是指针。 在C#程序中更改值后,在Lua脚本中它不再更改 我已经制定了我的解决方案,它运行得非常好(SelfManaPc现在是我自己类的对象Int

我正在开发一个程序,控制游戏中的角色。 我希望我的用户能够在我的程序中为游戏编写Lua脚本

在我的程序中有一个
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关键字传递它,以通过引用而不是通过值传递?我只是不确定这在你的情况下是否可行