• 不同版本Lua介绍


    luainterface、nlua、ulua、unilua、cstolua、slua

    luainterface:LuaInterface是开源的C#的lua桥接库,配合开源库luanet,能轻松实现Lua,C#相互调用和参数事件传递。但作者仅完成了windows程序的功能实现,跨平台并没有完成,作者于2013年4月30日停止更新luainterface,并推荐大家关注luainterface的一个分支Nlua。Nlua是实现跨平台的Luainterface的升级版,uLua和NLua都是基于此库升级编写

    nlua:是LuaInterface的一个分支,继承了Luainterface的所有优点,并将Luanet库功能集成到代码中,实现跨平台(Windows, Linux, Mac, iOS , Android, Windows Phone 7 and 8),对ios平台做了特殊处理,如支持了委托的桥接。
    配合NLua有2种Lua实现,第一种是KeraLua,基于原生Lua,将C API 进行简单的包装,使C# 可以方便使用 Lua C API,第二种是KopiLua,C#实现的Lua vm(对,和UniLua一样也是纯C#实现的Lua vm)。以下为关于两种方案的比较。
    使用KeraLua,必须将lua 编译成 Unity3D Plugin,并将编译好的文件放到Plugins文件夹下相应的平台文件夹中。并定义#define USE_KERALUA
    使用KopiLua,定义#define USE_KERALUA即可

    ulua:基于luainterface升级版,uLua = Lua + LuaJIT + LuaInterface,全平台支持。在原生C的基础上使用LuaJit进行加速,如果uLua效率高,LuaJit有很大功劳,作者仅仅提供了uLua插件包,并未提供整套插件源码。此外,作者重写了loadfile、print等api,使用非常简单,导入package,就可以开始编写代码了。

    unilua:是云风团队阿南的作品,是lua5.2的C#版,

    纯C#的Lua 5.2实现,是不是感觉似曾相识,对的,KopiLua也是纯C#实现的Lua vm,虽然Unilua出名,但是没有KopiLua的配套库好用,其自身同的Ffi库,是实验性质的库,不完善,作者不推荐使用,虽然作者在其商业项目中使用,但是这只是其中一部分代码,Unilua和C#中间层的代码作者并没有开源。UniLua仅仅提供了Lua原生的接口,如果要在Lua代码中调用C#,使用就需要把Luanet 移植到Unilua代码中,总的来说很蛋疼,据推测Unilua方法都是使用Lua标准的命名方式,所以将luanet源码中所有C接口全部手动改写成Unilua 的接口,就可以使用,这个工作量,等闲的时候把玩比较好。

    cstolua:cstolua是作者对ulua的扩展,提高了效率

    slua:也是从ulua扩展而来,官方说效率比cstolua还高,不过也有很多人质疑过 http://www.ulua.org/cstolua.html    http://www.slua.net/   http://www.sineysoft.com/post/164

    效率

    cstolua > ulua > nlua > luainterface > unilua

    其他热更新方式:李总的c#light(L#)、JSBinding

  • 相关阅读:
    ES6之6种遍历对象属性的方法
    css自定义滚动条样式,自定义文字选择样式,设置文字不被选择
    js img转换base64
    移动端rem造成的很多问题
    移动端边框1像素的问题
    【小练习1】如何制作“表单”
    2015-09-24 第六节课 (CSS补充和html 标签讲解、浏览器兼容性)
    2015-09-22 第四节课 CSS块级元素 行内元素 浮动 盒子模型 绝对定位、相当定位和固定定位
    2015-09-21 第三节课 css属性 border(边框)、background(背景)
    html你可能还不知道的一些知识点
  • 原文地址:https://www.cnblogs.com/MrZivChu/p/luaVersion.html
Copyright © 2020-2023  润新知