跳到主要内容

介绍

ZLua 是一个针对 Unity Il2Cpp 极致优化的现代原生 Lua 方案。

它用清晰的规则统一了 C# 与 Lua 之间的双向调用,把 Lua 当作另一种 Native——类比 P/Invoke,ZLua 提供了 [LuaInvoke][LuaCallback][LuaMarshalAs] 等对应概念,对开发者完全屏蔽底层复杂易错的 Lua C API 操作。

为什么选择 ZLua

在 xLua、tolua 等成熟方案已广泛使用的今天,ZLua 仍值得评估 —— 核心差异在于 把 Lua 当作 Native 的统一设计、完整的现代 C# 互操作Il2Cpp 直桥性能多路径 GC 优化零 C# Wrap 生成

详见 为什么选择 ZLua(含与 xLua 的用法对比与 Il2Cpp 性能原理)。

简要概览:

  • 极致易用[LuaInvoke] / [LuaMarshalAs] 类比 P/Invoke,双向调用规则统一
  • 极致高效:C++ 直桥 + 签名复用,热路径理论上有数倍甚至更高优化空间
  • 零 Wrapper 膨胀:不生成海量 C# Wrap,Player 侧原生桥接
  • 完整 C# 支持:泛型、数组、重载、ref/out/in(Mono 已全量实现)

核心特性

能力说明
Lua → C#类/struct 访问、静态/实例成员、方法调用、泛型、数组、重载、回调、协程、ref/out/in
C# → Lua[LuaInvoke] 标记 static extern 函数,自动桥接至 Lua 模块函数
双运行时Editor:Mono 已实现 v1.0 全量功能;Player:Il2Cpp MVP,逐步对齐
类型访问CSharp.{assembly}.{Type} 懒加载,语义贴近 C#

:::info 当前状态 Mono · 全功能Il2Cpp · MVP

Mono(Editor) 已实现 v1.0 全量互操作能力,适合日常开发与功能验证。Il2Cpp(Player) 仍处于 MVP 阶段,仅支持 Demo 级基础互操作;完整 C++ 直桥与性能优化预计 2026 年 8 月 发布。详见 项目状态。 :::

下一步