C# 版的 Lua
我们游戏客户端使用了 Unity3D , 我们不打算给它写 C 插件, 所有的开发都在 mono 中进行的。
由于某些需求,我们需要在客户端解析一些 Lua 脚本(这些脚本同时供我们的服务器使用)。所以,就有了阿楠同学开发的 UniLua 。
这个世界上已经有了很多的 .net 版的 Lua 实现,但是都不完整。它们大多是基于 Lua 5.1 甚至更老的版本的。还有一些只能解析 Lua 的字节码(这样很容易实现),而不能让 Lua 源代码直接工作起来。这使得在 Lua 中很常见的 meta 编程变得不可用了。
这个版本实现了 Lua 5.2 的大部分特性。特别是对 parser 和 coroutine 的支持,是许多其它实现所不具备的。
Lua 的基本类型:string / table 都用 C # 自己的原生实现对应,gc 也直接依赖 .net 的环境。由于工作在 mono 环境中,所以原来对于 Lua 很重要的一部分:和 C 交互的 API 变成了和 C # 交互。
UniLua 着重于在 Unity3D 所嵌入的 mono 中实现 Lua 5.2 。而 mono 所支持的是官方版本的 C# 的一个子集。所以理论上 UniLua 也是可以用于官方的 .net 环境中的。
Comments
Posted by: zz | (27) May 8, 2015 12:22 PM
Posted by: 朱江波 | (26) January 13, 2014 01:49 PM
Posted by: 边城浪 | (25) March 4, 2013 09:39 PM
Posted by: 边城浪 | (24) March 4, 2013 09:33 PM
Posted by: 边城浪 | (23) March 4, 2013 09:33 PM
Posted by: littlewater | (22) February 15, 2013 12:46 PM
Posted by: Anonymous | (21) February 14, 2013 11:25 AM
Posted by: Sky | (20) February 9, 2013 11:16 AM
Posted by: zhp | (19) February 4, 2013 04:22 PM
Posted by: avlee | (18) February 3, 2013 08:36 PM
Posted by: myz | (17) February 3, 2013 02:03 PM
Posted by: bert | (16) February 3, 2013 10:14 AM
Posted by: 叶起涟漪 | (15) February 2, 2013 11:50 PM
Posted by: Suxy | (14) February 2, 2013 09:41 PM
Posted by: Joe | (13) February 2, 2013 09:24 PM
Posted by: bert | (12) February 2, 2013 10:13 AM
Posted by: Joe | (11) February 2, 2013 01:30 AM
Posted by: bert | (10) February 1, 2013 08:51 PM
Posted by: geek42 | (9) February 1, 2013 05:54 PM
Posted by: 杨博 | (8) February 1, 2013 05:51 PM
Posted by: Cloud | (7) February 1, 2013 04:12 PM
Posted by: Joe | (6) February 1, 2013 03:56 PM
Posted by: gemor | (5) February 1, 2013 03:11 PM
Posted by: EVA | (4) February 1, 2013 03:03 PM
Posted by: EVA | (3) February 1, 2013 03:02 PM
Posted by: ychellboy | (2) February 1, 2013 03:00 PM
Posted by: fans | (1) February 1, 2013 02:33 PM