ゲーム内のキャラクターを制御するプログラムに取り組んでいます。ユーザーがゲーム用のプログラムで Lua スクリプトを記述できるようにしたいと考えています。
私のプログラムには、次のようにスクリプターに渡されるint
変数があります。int SelfManaPc
lua_compiler["SelfManaPc"] = SelfManaPc;
この変数は、別のスレッドのメイン プログラムで非常に高速に変更されています。私の問題は、ポインターではなく、Lua スクリプターにのみ値を渡していることです。C# プログラムで値を変更した後、Lua スクリプトでは変更されなくなりました。
私は自分のソリューションを作成しましたが、それはかなりうまく機能します(SelfManaPc
現在は自分のクラスのオブジェクトであるInteger
ため、値の代わりにポインターを渡すことができます)。
C# クラス:
public class Integer
{
int value;
public Integer(int xd) { value = xd; }
public void Set(int xd) {value = xd;}
public int Get() { return value; }
}
Lua コードでの使用例:
while true do
Say(SelfManaPc:Get())
Sleep(2000);
end
他に方法がなければ、このままにしておきます。しかし、他のアイデアについては、まず皆さんにお聞きしたいと思いました。int
でアクセスするGet
のはちょっとばかげてSet
いるので、いくつかの素晴らしいトリックを知っている人もいるかもしれません.