xLua 简介

C#下Lua编程支持

xLua为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用。

Unity3D 下Lua编程支持

xLua为Unity3D增加Lua脚本能力,进而提供代码逻辑增量更新的可能,当然不仅仅如此,在coco2dx上的实践告诉我们,以Lua为主打语言的游戏客户端编程是可行的,,

xLua的突破:点击查看详情
xLua在功能,性能,简易性都有不少的突破,这几个方面的分别最具有代表性的是:
Unity3D平台热补丁技术,可以运行时把C#实现(方法,操作符,属性,事件,构造函数,析构函数,支持泛化)替换成Lua实现,
自定义struct,枚举在Lua和C#之间传递无C# gc alloc
编辑器下无需生成代码开发更轻量,

安装:
直接解压到Assets下可用,第一次建议把例子包也安装,运行看看效果,,,

Lua5.3 vs Luajit
xLua有连个版本,分别集成了,Lua5.3和Luajit,一个想不只能选择其一,这两个版本C#代码是一样的,不同的是Plugins部分
Lua5.3的特性更肺腑下,比如支持原生64位整数,支持苹果干bitcode,支持utf8等,出现问题是因为纯c代码,也好定位。比起Luajit。lua对安装包的影响也更小,
而luajet胜在性能,如果其jit不出现问题的话,可以比Lua高一个数量积,目前Luajit坐直不打算维护Luajit,已经在找人接替其维护,所有其前途堪然,,

热补丁
xLua支持热补丁,这意味着你可以:
开发只用C#;
运行也是C#,性能可以秒杀Lua
处理问题采用Lua改掉C#的出问题部位,下次整体更新是换回正确的C#,能做到用户不用重启程序fix bug;

快速入门
一个完整的例子仅需3行代码:
安装好xLua,建一个MonoBehaviour拖到场景,在Start加入如下代码:
XLua.LuaEnv luaenv = new XLua. LuaEnv (); luaenv.DoString ("CS.UnityEngine.Debug. Log ( 'hello world' )"); luaenv.Dispose ();
1、DoString参数为string,可输入任意合法的Lua代码,本示例在lua里调用C#的UnityEngine.Debug.Log打印了个日志。
2、一个LuaEnv实例对应Lua虚拟机,出于开销的考虑,建议全局唯一。
C#主动调用lua也很简单,比如要调用lua的系统函数,推荐方式是:
声明
[XLua.CSharpCallLua]publicdelegatedouble LuaMax(doublea, doubleb);
绑定
varmax =luaenv.Global.GetInPath("math.max");
调用
Debug.Log("max:" +max(32,12));
建议绑定一次,重复使用。生成了代码的话,调用max是不产生gc alloc的。


你可能感兴趣的:(ジ﹋★☆『,Lua...,』)