近日,腾讯开源了其用于游戏业务的 sluaunreal,该项目是适用于 unreal4 引擎的 Lua 开发插件,可让开发者高效地使用 Lua 进行业务开发。
项目地址:https://github.com/Tencent/sluaunreal
据项目主页介绍,sluaunreal 作为 unreal 引擎的插件,通过 unreal 自带蓝图接口的反射能力,结合 libclang 静态 C++ 代码分析,自动化导出蓝图接口和静态 C++ 接口,提供给 Lua 语言,使得可以通过 Lua 开发 unreal 游戏业务逻辑,方便游戏高效迭代开发、上线热更新,同时支持 Lua 到 C++ 双向、Lua 到蓝图双向调用,大大提升开发速度。
具体功能如下:
通过蓝图反射机制,自动导出 unreal4 的蓝图 api 到 Lua 接口
支持以 Lua function 作为蓝图事件的回调函数
支持普通 C++ 函数和类,通过静态代码生成或者泛型代码展开导出到 Lua 接口,同时支持与蓝图接口交互
完整支持了 unreal4 的枚举,并导出了全部枚举值到 Lua
支持 FVector 等非蓝图类,同时支持操作符重载
支持扩展方法,将某些未标记为蓝图方法的函数,手动添加到蓝图类中,例如 UUserWidget 的 GetWidgetFromName 方法。
支持从蓝图中调入 Lua,并接收 Lua 返回值,支持任意参数类型和任意参数个数。
支持蓝图 out 标记参数,支持 C++ 非 const 引用作为 out 类型参数返回。