跳到主要内容

项目状态与路线图

当前状态

:::info 双运行时 兼容性矩阵 所列 Unity / Lua 组合均已覆盖;Mono 与 Il2Cpp 双运行时已完成。

运行时环境状态
Il2CppPlayer 发布已完成(规范与实现以 Il2Cpp zlua/ 为准)
MonoUnity Editor已完成(与 Il2Cpp Lua 可见语义一致

权威规范:本仓库 docs/spec/(唯一语义标准);冲突时以 spec → Il2Cpp 源码 → impl 裁决。详见 规范总览。 :::

:::tip 开发建议

  • 日常开发:Editor(Mono)迭代脚本与功能。
  • 发布 / 性能:以 Il2Cpp Player 为准;构建前执行 ZLua/Generate/All(生成 C++ stub,不是 xLua 式 C# Wrap)。 :::

我应该在哪里开发 / 测什么?

场景建议
新项目原型Editor Mono + zlua-demo;发 Player 前跑 Generate
验证 PlayerIl2Cpp;语义以 规范 为准
性能对比 xLuaIl2Cpp Player;见 性能对比
查完整 API 语义规范文档

Il2Cpp(Player)

Player 侧 C++ 直桥、签名 stub 复用、GetFunction Delegate 桥、懒绑定与 Marshal 路径已落地。实现对照见 Il2Cpp 实现、Codegen 见 Stubs

注意: 「无 C# Wrap 白名单」≠「完全无 codegen」。Il2Cpp 仍需 ZLua/Generate/All 生成 C++ MethodBridge 等 Lua→C# stub;C#→Lua 无额外 stub

Mono(Editor)

与 Il2Cpp 共用同一套 Lua 可见语义(spec);实现为 Expression Emit,目录对齐 Il2Cpp 模块。见 Mono 实现说明

要点:

  • 无 Event 专用元表;使用 add_Xxx / remove_Xxx 普通方法
  • 桥接:每成员 Expression Emit(对照 Il2Cpp ReducedType stub)
  • Editor 下不需要 Generate C++ stub;发 Player 时再 Generate

能力边界(摘要)

主题说明
Event{ get, set, fire }obj:add_EventName(fn)
Generate无 per-type C# Wrap;Il2Cpp 有 C++ stub Generate
Opaque / ByVal / ByObjStruct Marshal
双端差异实现路径不同,语义以 spec 为准

完整矩阵见 兼容性

版本计划

近期

  • 性能 / GC / 体积实测持续更新 compare
  • 规范与用户指南持续校正
  • 迁移指南与社区反馈

后续

  • Luau
  • 更多平台与设备实测
  • 迁移指南完善(见 迁移

下一步