腾讯开源 Lua 开发插件 sluaunreal,加速游戏业务开发

Posted 开源最前线

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了腾讯开源 Lua 开发插件 sluaunreal,加速游戏业务开发相关的知识,希望对你有一定的参考价值。

开源最前线(ID:OpenSourceTop) 猿妹 整编

链接:GitHub


近日,腾讯开源了其用于游戏业务的 sluaunreal,该项目是适用于 unreal4 引擎的 Lua 开发插件,可让开发者高效地使用 Lua 进行业务开发。


Lua开发插件 sluaunreal


授权协议:BSD 3-Clause

开发语言:C/C++

操作系统:跨平台

开发厂商:腾讯

Github:https://github.com/Tencent/sluaunreal



slua-unreal 是什么?


slua-unreal作为unreal引擎的插件,通过unreal自带蓝图接口的反射能力,结合libclang静态c++代码分析,自动化导出蓝图接口和静态c++接口,提供给lua语言,使得可以通过lua语言开发unreal游戏业务逻辑,方便游戏高效迭代开发,上线热更新,同时支持lua到c++双向,lua到蓝图双向调用,使用lua语言完美替代unreal的c++开发方式,修改业务逻辑不需要等待c++编译,大大提升开发速度。


目前该项目作为潘多拉系统的一部分,用于部分腾讯游戏业务,构建这些业务的周边系统、运营系统,上线质量稳定。



slua-unreal 有什么功能?


slua-unreal的具体功能如下:

● 通过蓝图反射机制,自动导出unreal 4的蓝图api到lua接口

● 支持以lua function作为蓝图事件的回调函数

● 支持普通c++函数和类 通过静态代码生成或者泛型代码展开导出到lua接口,同时支持与蓝图接口交互

● 完整支持了unreal4的枚举,并导出了全部枚举值到lua

● 支持FVector等非蓝图类,同时支持操作符重载

● 支持扩展方法,将某些未标记为蓝图方法的函数,手动添加到蓝图类中,例如UUserWidget的GetWidgetFromName方法。

● 支持从蓝图中调入lua,并接收lua返回值,支持任意参数类型和任意参数个数。

● 支持蓝图out标记参数,支持c++非const引用作为out类型参数返回。



什么是蓝图类和蓝图方法的调用?


就是所有标记了了UCLASS和UFUNCTION的类和函数,UE4为这些类和函数提供反射能力,通过使用反射,slua可以方便调用这些函数,蓝图自己也使用这些反射能力来支持蓝图调用,所以理论上使用这些能力来供lua调用,不会比蓝图自己更慢。


在蓝图中调用lua



可以传入任意数量的参数,任意参数类型,并返回任意个数的返回值。



本文编号352,输入编号直达本文

●输入m获取文章目录

以上是关于腾讯开源 Lua 开发插件 sluaunreal,加速游戏业务开发的主要内容,如果未能解决你的问题,请参考以下文章

腾讯UnLua脚本插件正式开源

已开源Flutter 腾讯优量汇广告插件,帮助开发者获利 - FlutterAds

已开源Flutter 腾讯优量汇广告插件,帮助开发者获利 - FlutterAds

已开源Flutter 腾讯优量汇广告插件,帮助开发者获利 - FlutterAds

已开源Flutter 腾讯优量汇广告插件,帮助开发者获利 - FlutterAds

已开源Flutter 腾讯优量汇广告插件,帮助开发者获利 - FlutterAds