xLua:从lua调C# [LuaCallCSharp] 生成Wrap代码
[XLua.LuaCallCSharp]
跟toLua类似的,xLua想要从lua调C#也需要生成一堆的中间代码,不同的是toLua是通过添加配置然后生成Wrap文件,而xLua则是通过打标签的方式。并且二者生成的中间文件也都叫xxxWrap.cs。
不过看到xLua的配置文档,发现xLua其实也是可以通过配置的方式来生成Wrap文件的。感觉这个方式比打标签要方便一些,可以进行集中管理。
那么就按照 xLua的配置.Doc 里来,写一个静态的配置类。叫WrapConfig.cs。本来追着xLua的Editor脚本进去找到了xLua自己的一个配置脚本GenConfig.cs在Src目录下,不过打开一看,作者在开头写了
,那还是自己重起一个好了。
public static class WrapConfig {
[LuaCallCSharp]
public static List List_LuaCallCS = new List()
{
typeof(WrapTest),
};
}
这个类建好了只要就这么放着就可以了,不用自己去调用他,GenerateCode的时候xLua自己会去搜到这个类的。
想要从Lua调C#的类就通通配到这个List_LuaCallCS里面。用这种方法不仅可以配自定义的C#类,对于一些Unity内置的类型也可以配置。因为内置的类型不能自己编辑源码,也就不能打标签了,所以只能通过这种方式来进行配置。
这么一来,生成Wrap文件的做法上就跟toLua一样了。
注意:这里生成的适配代码不会追到父类,也就是说如果要适配的类有父类,如 上面的WrapTest有父类MonoBehaviour,那么就应该为MonoBehaviour也进行适配。不过对于MonoBehaviour的适配,xLua本身已经做好了。
文档下面还有一些标签 ReflectionUse,CSharpCallLua等,除了最下面的AdditionProperties和BlackList,其他的也都可以像这样来进行配置。
- 上一篇: UGUI:Canvas
- 下一篇: xLua:配置[Hotfix] 热补丁