Lua 引擎
| 版本 | Mono (Editor) | Il2Cpp (Player) | 备注 |
|---|
| Lua 5.1.x | ✅ | ✅ | Settings 可选(如 lua-5.1.5);无 VM FastMT patch |
| Lua 5.2.x | ✅ | ✅ | Settings 可选(如 lua-5.2.4);无 VM FastMT patch |
| Lua 5.3.x | ✅ | ✅ | Settings 可选;默认 lua-5.5.0 |
| Lua 5.4.x | ✅ | ✅ | Settings 可选 |
| Lua 5.5.x | ✅ | ✅ | Settings 可选 |
| LuaJIT | ✅ | ⚠️ | Editor(Mono)可用;Il2Cpp Player 仅 Android / iOS(须自备静态库,见 LuaJIT 构建) |
| Luau | 🔜 | 🔜 | 规划中 |
PUC-Rio 小版本用 Settings 的 luaVersionId(lua-X.Y.Z)指定;LuaJIT 用 luajit-M.N(源码须自行 clone)。Install 时装入本地树。详见 安装、多版本管理。
Unity
| 版本 | 状态 |
|---|
| Unity 6000.0.x | ✅ 支持 |
| Unity 6000.3.x | ✅ 支持 |
| Unity 6000.5.x | ✅ 支持 |
| Unity 2022.3 LTS | ✅ 支持 |
| Unity 2021.3 LTS | ✅ 支持 |
| 团结引擎 LTS | ✅ 支持 |
libil2cpp patch 解析:优先 patches/libil2cpp/6000.{minor}/,再回退 6000/(见 多版本管理)。
Scripting Backend
| 后端 | 环境 | 功能状态 |
|---|
| Il2Cpp | Player 发布 | 已完成(权威实现) |
| Mono | Unity Editor | 已完成(与 Il2Cpp 语义一致) |
Lua 可见语义两端一致;Indexer / 桥接实现不同。详见 项目状态、规范。
Il2Cpp 构建: 发布前执行 ZLua/Generate/All(C++ stub,非 C# Wrap)。
目标平台(Il2Cpp)
| 引擎 | Il2Cpp Player 平台 |
|---|
| PUC-Rio(Lua 5.1–5.5) | 设计覆盖 Il2Cpp 常见目标(Windows、macOS、iOS、Android、WebGL、微信小游戏、鸿蒙/车机等) |
| LuaJIT | 仅 Android、iOS;Win / macOS / Linux / WebGL 等 不支持。须自行编译静态 .a 放入 Plugins,见 LuaJIT 构建 |
其它平台问题请提交 Issue。
功能 × 运行时矩阵
✅ 可用 · ⚠️ 有限制(见说明) · ❌ 不支持(有意限制)。细则以 规范 为准。
Lua 调用 C#
| 功能 | Mono | Il2Cpp | 说明 |
|---|
| class / struct 访问 | ✅ | ✅ | 懒绑定,无 C# Wrap 白名单 |
| 实例 / 静态字段 | ✅ | ✅ | |
| 实例 / 静态方法 | ✅ | ✅ | |
| Property(无参) | ✅ | ✅ | |
| Property(indexer) | ✅ | ✅ | 经 get_Item / set_Item 等方法形式访问,见 字段与属性 |
| 方法重载 dispatch | ✅ | ✅ | |
[LuaAlias] / register_method | ✅ | ✅ | |
| 泛型类 / 泛型方法 | ✅ | ✅ | 开放泛型须先闭合;静态泛型方法有限制 |
| Array(szarray / mdarray) | ✅ | ✅ | mdarray 不可 table 序列化 |
| Event 专用元表 | ❌ | ❌ | 使用 add_ / remove_ 普通方法 |
| Delegate / Lua 回调 | ✅ | ✅ | Lua→C# byref 形参有限制 |
C# 调用 Lua
| 功能 | Mono | Il2Cpp |
|---|
GetFunction<T> | ✅ | ✅ |
| 多参数 / 返回值 | ✅ | ✅ |
[LuaMarshalAs] | ✅ | ✅ |
Marshal
| 类型 | Mono | Il2Cpp |
|---|
| 基元 / string | ✅ | ✅ |
| enum(默认 integer) | ✅ | ✅ |
| class / struct(ByVal / ByObj / Opaque) | ✅ | ✅ |
| array | ✅ | ✅ |
| OpaqueValue / byref | ✅ | ✅ |
标准库 zlua
| API | Mono | Il2Cpp |
|---|
typeof / get_type_from_name / make_generic_* | ✅ | ✅ |
| szarray / mdarray 工厂 | ✅ | ✅ |
opaque get/set、box/unbox | ✅ | ✅ |
register_method | ✅ | ✅ |
开发环境建议
| 目标 | 推荐环境 |
|---|
| 功能开发、脚本迭代 | Editor(Mono) |
| 发布与性能 | Il2Cpp Player + Generate |
| 语义争议 | 以 spec 为准 |
下一步