私は MonoDevelop で SharpLua を使用しています。Luaから使えるはずのC#側のクラスを作りました。Lua からすべてのフィールドにアクセスできます。それは非常に簡単です。
public class Test {
public string Name;
}
でLuaからアクセスできます
print(test.Name)
さて、Lua で新しいフィールドを作成したいと思います。Luaでは次のようになります
test.abc = "A string"
print(test.abc)
しかし、これはうまくいきませんでした。ObjectTranslator でエラーが発生します。そのため、Lua からテーブルを拡張できませんでした。C# からこの新しいエントリにアクセスしたくありませんでした。それらを作成することだけが可能であるべきです。
これを達成する他の方法はありますか?LuaTable からクラスを作成し、これを Lua に挿入できますか?
lua["NewLuaTable"] = new ClassFromLuaTable;
Luaで使用するよりも
NewLuaTable.abc = "A string"
print(NewLuaTable.abc);
しかし、知りたいことが LuaTable で変更された (NewLuaTable.Name が変更された) という通知をどのように受け取ったのでしょうか?
ご協力ありがとうございました。