跳到主要内容

支持的版本与平台

Lua 引擎

版本Mono (Editor)Il2Cpp (Player)备注
Lua 5.1.xSettings 可选(如 lua-5.1.5);无 VM FastMT patch
Lua 5.2.xSettings 可选(如 lua-5.2.4);无 VM FastMT patch
Lua 5.3.xSettings 可选;默认 lua-5.5.0
Lua 5.4.xSettings 可选
Lua 5.5.xSettings 可选
LuaJIT⚠️Editor(Mono)可用;Il2Cpp Player 仅 Android / iOS(须自备静态库,见 LuaJIT 构建
Luau🔜🔜规划中

PUC-Rio 小版本用 Settings 的 luaVersionIdlua-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 为准

下一步