跳转至

Showcase 示例

这一页汇集 UnLuaNova 的可运行示例:每个示例都是一小段真实代码 + 一张跑出来的截图, 用来回答"这东西到底怎么用",而不只是描述 API 签名。

示例的源码在 Source/UnLuaNovaDemo/ 下,配套 Lua 脚本在工程的 Content/Script/ 目录里;本页的截图由自动化测试产出,不是手截的。

为什么截图要自动化

手截的图会过期——代码一改,图还是旧的,读者却以为它是当前的。所以截图走 自动化:跑 Tools/RunTests.ps1 -Screenshots -Publish 时顺带刷新, 和测试报告同一批产物。详见测试与自动化。

生成方式:

.\Tools\RunTests.ps1 -Map /UnLuaNovaTestSuite/Tests/Misc/<关卡> -Screenshots -Publish `
    -ExtraCommands "UnLuaNovaTest.Screenshot Showcase_Binding"

示例清单

1. 绑定:UObject 与 Lua 双向调用

UTutorialObject 展示了最基础的一条链路——C++ 侧的类如何被 Lua 拿到、 Lua 侧的函数如何被 C++ 调回去。

要点:静态导出绑定把反射信息预生成好,运行时不需要遍历 UClass, 启动开销和 UObject 数量无关。

2. 覆写:用 Lua 替换蓝图事件

UTutorialBlueprintFunctionLibrary 里的 CallLuaByGlobalTable 演示了从蓝图 侧进入 Lua、再由 Lua 覆写 ReceiveBeginPlay 这类事件的完整路径。

要点:覆写是替换而非追加,被覆写的实现默认不再执行;需要调用原实现时用 Overridden 系列的显式调用。

3. 容器:TArray / TMap / TSet 的 Lua 侧访问

LuaLib_Array / LuaLib_Map / LuaLib_Set 三个模块给出容器在 Lua 里的读写方式, 以及它们在 Lua 侧是引用语义(不拷贝容器本身)。

4. 调试:断点、堆栈与内存统计

调试相关能力集中在调试一页;内存统计走 lua.memstats 控制台命令,可以按内存类别看到 Lua 侧的分配分布。


截图占位注释会在首次 -Publish 之后替换成真实图片。想补新示例: 加一个示例类 + 对应的 Lua 脚本,再在测试里加一条截图命令即可。


延伸阅读