跳转至

UnLuaNova

面向 Unreal Engine 的 Lua 脚本方案 —— Tencent/UnLua 的社区续作。 保留 UnLua 的编程手感,补上它缺失的维护、性能与可观测性。

在线文档 · GitHub 仓库 · English


三个关键增量

  • 静态绑定

    构建期为声明类型生成绑定表,绕开反射热路径与运行时查找开销。类型选择是 opt-out:默认全导出。

    静态导出与静态绑定 →

  • 双 Lua 后端

    Lua 5.5 与 Luau(默认)均以子模块引入,差异收敛在 LuaBackend.h。

    后端设置 →

  • Lua 可观测性

    CPU Profiler 写入 Unreal Insights、内存统计、headless 调试服务、沙盒、死循环看门狗。

    控制台命令 →

五分钟跑起来

  1. 把 Plugins 目录复制到你的 UE 工程根目录
  2. 初始化子模块 —— 不初始化会缺 VM 源码:

    git submodule update --init --recursive
    
  3. 重启工程,新建蓝图

  4. UnLuaNova 工具栏 → 绑定 → 填入 Lua 模块路径(如 GameModes.BP_MyGameMode)
  5. 创建 Lua 模版文件 → 在 Content/Script/GameModes/BP_MyGameMode.lua 里写代码

第一次接触?UE 新手快速上手 有每一步的截图。


中文文档

English Docs

  • Programming Guide

    Core concepts: binding, calling the engine from Lua, calling Lua from the engine, GC.

  • Luau Backend

    Language features, sandboxing, native breakpoints and luau-analyze on the Luau backend.

  • API Reference

    C++ API, Lua API and the build-time macros.

  • How To Implement Overriding

    How Blueprint events get replaced by Lua implementations.

  • FAQ

    Frequently asked questions.


状态

项 值
引擎基线 UE 5.8.3(源码版)
Lua 后端 Luau(默认) / Lua 5.5 —— 均以子模块引入
上游基线 Tencent/UnLua v2.3.6 + develop(2026-04)
许可 MIT

早期阶段

项目仍在早期重构阶段,改动会比较频繁:适合尝鲜、提 issue、一起 push,暂不建议直接上生产。 已知事项见仓库根目录的 CHANGELOG.md。

从 UnLua 迁移

Lua 全局名 UnLua → UnLuaNova,UCLASS 与 ini section 同步改名(需 resave 资产):

local M = UnLua.Class()       -- UnLua
local M = UnLuaNova.Class()   -- UnLuaNova

上游 2019–2023 年的历史变更见 Archive/UnLua_CHANGELOG.md(本站导航未收录,请从仓库查看)。


觉得有用?给 HUSTJJD/UnLuaNova 点个 Star ⭐