Xlua文档:
2、映射到一个interface
这种方式依赖于生成代码(如果没生成代码会抛InvalidCastException异常),代码生成器会生成这个interface的实例,
如果get一个属性,生成代码会get对应的table字段,如果set属性也会设置对应的字段。甚至可以通过interface的方法访问lua的函数。
private LuaEnv luaEnv;
void Start()
{
luaEnv = new LuaEnv();//全局唯一
luaEnv.AddLoader(CustomLoader);//添加自定义路径
luaEnv.DoString("require '007' ");//在自定义路径中查找007文件
IPerson person = luaEnv.Global.Get<IPerson>("person"); //C#访问lua代码中的表
Debug.Log("person.name=" + person.name);
Debug.Log("person.age=" + person.age);
Debug.Log("person.grade=" + person.grade);
person.name = "我在C#中改变Lua的变量值,如果改变了说明我相当于引用类型(可以改变Lua中值)";
luaEnv.DoString("print(person.name)");
person.eat();
person.add(10,20);
}
[CSharpCallLua]
public interface IP