腾讯开源 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,加速游戏业务开发的主要内容,如果未能解决你的问题,请参考以下文章
已开源Flutter 腾讯优量汇广告插件,帮助开发者获利 - FlutterAds
已开源Flutter 腾讯优量汇广告插件,帮助开发者获利 - FlutterAds
已开源Flutter 腾讯优量汇广告插件,帮助开发者获利 - FlutterAds