クラス全体を C# コードから lua に渡したいので、LUA で新しいオブジェクトを作成し、そのメソッド、フィールドなどを使用できます。それが完了したら、ac# コードで作成され、何らかの方法で lua に渡されたオブジェクトを lua で使用できるかどうかを知りたいです。
私のコードは次のとおりです: atm、クラス Person1 の luainterface オブジェクトで作成し、say() を lua スクリプターに入力したときにその関数を使用することはできません (そこでオブジェクトを作成せずに)、Person2.say( の出力を取得しています。 )
using System;
using LuaInterface;
using System.Reflection;
namespace ConsoleApplication
{
public class Person1
{
public void say()
{
Console.WriteLine("person1 says: hehe");
}
}
public class Person2
{
public void say()
{
Console.WriteLine("person2 says: hihi");
}
}
class Class1
{
static void Main(string[] args)
{
Lua lua_compiler = new Lua();
Person1 person1 = new Person1();
Person2 person2 = new Person2();
lua_compiler.RegisterFunction("say", person1, person1.GetType().GetMethod("say"));
lua_compiler.RegisterFunction("say", person2, person2.GetType().GetMethod("say"));
while (true)
{
string line = Console.ReadLine();
try { lua_compiler.DoString(line); }
catch { }
}
}
}
}