跳到主要内容

支持的版本与平台

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​

后端环境功能状态
Il2CppPlayer 发布已完成(权威实现)
MonoUnity 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#​

功能MonoIl2Cpp说明
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​

功能MonoIl2Cpp
GetFunction<T>✅✅
多参数 / 返回值✅✅
[LuaMarshalAs]✅✅

Marshal​

类型MonoIl2Cpp
基元 / string✅✅
enum(默认 integer)✅✅
class / struct(ByVal / ByObj / Opaque)✅✅
array✅✅
OpaqueValue / byref✅✅

标准库 zlua​

APIMonoIl2Cpp
typeof / get_type_from_name / make_generic_*✅✅
szarray / mdarray 工厂✅✅
opaque get/set、box/unbox✅✅
register_method✅✅

开发环境建议​

目标推荐环境
功能开发、脚本迭代Editor(Mono)
发布与性能Il2Cpp Player + Generate
语义争议以 spec 为准

下一步​