前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯UnLua脚本插件正式开源

腾讯UnLua脚本插件正式开源

作者头像
腾讯开源
发布于 2019-08-20 11:11:16
发布于 2019-08-20 11:11:16
1.7K0
举报

UnLua是Unreal Engine 4下特性丰富且高度优化的Lua脚本插件。它遵循Unreal Engine 4的编程模式,简单易上手,UE4程序员更是可以零学习成本使用。UnLua目前已经被应用在大量的大型项目中。

适用场景

  • 使用Lua编写游戏逻辑。
  • 使用Lua替换线上系统原有的蓝图(Blueprint)逻辑。

主要特性

  • 零胶水代码访问引擎反射体系内的所有UCLASS、 UPROPERTY、 UFUNCTION、 USTRUCT、UENUM。
  • 零辅助代码覆写(Override)所有'BlueprintEvent' (包括所有用'BlueprintImplementableEvent'或'BlueprintNativeEvent'标记的UFUNCTION和所有蓝图中定义的Event/Function)、 Replication Notify、 Animation Notify、 Input Event。
  • 完备的静态导出方案,用于导出引擎反射系统之外的类(成员函数、成员变量)、全局函数、枚举。
  • 高度优化的UFUNCTION调用,包括持久化参数缓存、优化的参数传递、优化的非常量引用和返回值处理。
  • 高效的基础容器(TArray、TSet、TMap)访问,内存布局与引擎一致,无需在Lua Table和容器间转换。
  • 高效的结构体创建、访问、GC。
  • 支持自定义的碰撞检测相关枚举。
  • 支持UFUNCTION(带BlueprintCallable或Exec标签)默认参数。
  • 支持编辑器内Server/Client模拟。
  • 支持Lua协程中执行Latent函数,同步写法完成异步逻辑。
  • 支持根据Blueprint类型自动生成Lua模板代码。

使用示例

  • 创建新蓝图。
  • 新蓝图实现UnLuaInterface接口。
  • 实现GetModuleName函数,返回一个Lua文件路径(相对于Content/Script目录)。
  • 生成Lua模板。
  • 向Lua模板加入逻辑代码。

未来规划

  • 继续完善和优化。
  • 加入测试用例。

UnLua 正式开源

Github 开源地址:

https://github.com/Tencent/UnLua

(点击文末阅读原文直接访问)

请给 UnLua 一个 Star !

欢迎提出你的 issue 和 PR!

UnLua 国内镜像地址:

https://git.code.tencent.com/Tencent_Open_Source/UnLua

腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯开源 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
跨游戏引擎跨平台的TypeScript运行时开源了
Puerts是一个TypeScript游戏开发解决方案。它有以下几个特点: 游戏领域的nodejs:基于高性能,成熟稳定的Chrome V8引擎,支持在ts/js脚本中调用游戏引擎的API。 TypeScript游戏开发:支持引擎api,用户原生代码的TypeScript声明文件生成,用TypeScript做游戏开发更高效,健壮。 跨游戏引擎:同时支持主流的UE4、Unity的引擎。 支持主流平台:iOS,Android,Window,Mac。 完善的调试支持:支持nodejs同款的v8inspecto
腾讯开源
2020/08/20
2.2K0
腾讯UnLua正式开源了!
腾讯UnLua正式开源了! 欢迎到:https://github.com/Tencent/UnLua下关注、加星和加Fork。 UnLua是Unreal Engine 4下特性丰富且高度优化的Lua脚本插件。它遵循Unreal Engine 4的编程模式,简单易上手,UE4程序员更是可以零学习成本使用。 UnLua目前已经被应用在大量的大型项目中。 主要特性: 零胶水代码访问引擎反射体系内的所有UCLASS、UPROPERTY、UFUNCTION、USTRUCT、UENUM; 零辅助代码覆写(Over
WeTest质量开放平台团队
2019/08/15
3.7K0
腾讯UnLua正式开源了!
UE4 反射系统详细剖析
使用UE4的同学一定对"*.generated.h"这个名字不陌生。蓝图、HotReload等功能都依赖于反射机制。本文会从生成代码分析UE4的反射系统是如何实现的。
阿苏勒
2020/03/30
11.3K0
UE4 反射系统详细剖析
Unreal 基于 PoseAsset 捏人
PoseAsset 是 UE 提供的一种基于曲线驱动动画的方式 1。传统动画使用关键帧来控制,关键帧之间的状态计算使用前后关键帧状态插值来实现,而 PoseAsset 则是通过定义动画的极值,然后对这些极值进行加权来组合出动画。比如先定义眼睛睁开到最大和闭合的状态,然后,通过曲线控制它们的权重,实现眨眼的效果。一个常见的应用场景就是基于 FACS 2 实现面部表情。而这个能力也非常适合用于进行游戏中常见的捏人操作,在本文中我们将会讨论如何在 UE 中使用 PoseAsset 实现捏人功能,并进一步优化工作流。
zhiruili
2023/10/20
9050
Unreal 基于 PoseAsset 捏人
关于UnLua的改进与替换方案
1、类型不安全:比如将Vector, FQuat, FTransform这些结构体传错导致Crash, 还是偶现的,为了解决这个问题,不得将所有引用的地方增加类型检查,这个应该是UnLua原始的设计是速度优先吧
用户7851139
2022/12/16
2.3K1
Tencent Shadow—零反射全动态Android插件框架正式开源
Android 9.0出现限制非公开SDK接口访问之后,可以说当时我们已知的所有插件框架实现都或多或少的出现了适配问题。大家的应对方式基本上都是一种对抗的思想,有的去破解限制,有的通过和Google沟通浅灰名单有效期暂时续命。
腾讯开源
2019/06/20
7.4K0
Tencent Shadow—零反射全动态Android插件框架正式开源
高效使用lua作为业务开发语言的秘诀在这里!
导语 你还在使用c++开发UE4吗?会不会感觉太慢了?会不会感觉编译一次就可以去楼下喝杯咖啡了?会不会感觉总是提心吊胆,搞不好什么时候就crash了?现在不用发愁了,slua出unreal版本了,在unity上广泛流行的slua发布了unreal版本,还是那么强大,还是那么好用,你还等什么,赶快上船吧。 1 为何做unreal版本? 目前unreal提供的开发语言包括c++和蓝图,但这2个开发语言都或多或少存在一定的问题,对于c++来说,最大的问题是c++开发人员越来越少,精通c++开发的同学更少,而且c
腾讯开源
2018/09/06
3.9K1
高效使用lua作为业务开发语言的秘诀在这里!
【技术总结】UE4中的Subsystem
在游戏开发过程中我们往往需要创建一系列的工具来辅助我们开发,例如UI管理工具,各类导表工具。在UE4.22之前我们只能够自己编写单例,并且自己管理生命周期。或者直接将管理游戏的工具编写进GameInstance中。但是随着代码量的增加,GameInstance将会变得难以维护。在4.22版本发布了之后,我们可以直接将工具写在Subsystem中,让引擎帮我们自动管理工具类的生命周期,不再需要自己维护工具的生命周期或者修改引擎的类(如GameInstance)。
太阳影的社区
2021/10/15
6K0
UnrealEngine4 源码剖析 (一) UObject 概览及反射系统
定义的前半句即自省,而后半句即反射。使用 UE4 的朋友应该大多数都是 C++ 开发者,但是如果大家使用过一些 C++ 之外的现代语言,就会明白自省和反射的重要性。
Kindem
2022/08/12
3.6K0
UnrealEngine4 源码剖析 (一) UObject 概览及反射系统
企业级分布式高性能KV存储数据库,腾讯Tendis正式开源
项目简介 Tendis是腾讯互娱CROS DBA团队 & 腾讯云数据库团队自主设计和研发的分布式高性能KV存储数据库,兼容Redis核心数据结构与接口,可提供大容量、低成本、强持久化的数据库能力,适用于兼容Redis协议、需要大容量且较高访问性能的温冷数据存储场景。Tendis目前已经被应用到腾讯内、外部大型项目中。 集群架构 Tendis使用去中心化集群架构,每个数据节点都拥有全部的路由信息,用户可以访问集群中的任意节点,并且通过redis的move协议,最终路由到正确的节点。 每个Tendis节
腾讯开源
2020/12/22
1.8K0
UE4 中通过单例类实现全局数据管理
单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
孤舟掠影
2022/11/16
1.8K0
【开源公告】unreal4引擎lua开发首选解决方案sluaunreal正式开源
slua-unreal sluaunreal作为unreal引擎的插件,通过unreal自带蓝图接口的反射能力,结合libclang静态c代码分析,自动化导出蓝图接口和静态c接口,提供给lua语言,使得可以通过lua语言开发unreal游戏业务逻辑,方便游戏高效迭代开发,上线热更新,同时支持lua到c双向,lua到蓝图双向调用,使用lua语言完美替代unreal的c开发方式,修改业务逻辑不需要等待c++编译,大大提升开发速度。 目前该项目作为潘多拉系统的一部分,用于部分腾讯游戏业务,构建这些业务的周边系
腾讯开源
2018/08/03
1.5K0
UE4新手常用C++API
//C++暴露给蓝图可编辑 UCLASS(Blueprintable) //创建FString FString::Printf(TEXT("aa bb")); //蓝图调用变量 UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) //限制条件范围 meta = (ClampMin=0.1,ClampMax = 100) //蓝图识别组件 UPROPERTY(EditAnywhere, BlueprintReadWrite
Ning@
2021/11/10
3.6K0
UnLua invalid property问题定位与修复
其实从UnLua1.0起就会偶尔遇到访问UObject上面的property是nil的情况,而且都是刚创建出来的UObject,就遇到了这个问题。
Jozhn
2023/10/30
4590
UE4
类命名(基础类actor、Uobject) 派生自 Actor 的类带有 A 前缀,如AController。 派生自 Object 的类带有 U 前缀,如UComponent。 Enums 的前缀是 E,如EFortificationType。 Interface 的前缀通常是 I,如IAbilitySystemInterface。 Template 的前缀是 T,如TArray。 派生自 SWidget 的类(Slate UI)带有前缀 S,如SButton。 其他类的前缀为字母F ,
sofu456
2019/07/09
3.5K0
ScriptX – 全能的脚本引擎抽象层开源
ScriptX是一个脚本引擎抽象层。对下封装多种脚本引擎,对上暴露统一的API,使得上层调用者可以完全隔离底层的引擎实现(后端)。 ScriptX不仅隔离了几种JavaScript引擎,甚至可以隔离不同脚本语言,使得上层在无需改变代码的前提下无缝切换脚本引擎和脚本语言。 ScriptX的术语中,"前端"指对外的C++ API,"后端"则指不同的底层引擎,目前已经实现的后端有:V8, node.js,JavaScriptCore, WebAssembly, Lua. 简介 ScriptX 的接口使用现代C+
腾讯开源
2021/03/25
2.5K0
UE运行时动态生成自定义物理形状碰撞检测
在MMORPG游戏中,针对一些范围伤害的计算,会涉及到碰撞/相交检测。在传统的2D或2.5D游戏中,或者要求不那么精确的3D游戏中,这种相交检测可以简化为平面上圆形与各种形状(如圆形、矩形、扇形等)是否相交的检测^1^,但是当考虑上飞行、跳跃等逻辑后,就必须进行3D空间的相交检测了,此时就需要借助物理引擎的功能。
Kill Console
2022/08/19
3.8K0
开源公告|运维基础操作管理系统-蓝鲸作业平台正式开源!
蓝鲸作业平台项目背景 蓝鲸作业平台是一套运维基础操作管理系统,具备海量任务并发处理能力;除了支持脚本执行、文件分发、定时任务等一系列基础运维场景以外,还支持通过流程调度能力将零碎的单个任务组装成一个自动化作业流程;而每个作业都可做为一个原子节点,提供给上层或周边系统/平台使用,实现调度自动化。 技术亮点  1. 微服务无状态设计 服务划分清晰,支持横向扩容;基于业界成熟的Spring Cloud微服务框架,提供了完善的分布式配置中心、服务发现、负载均衡、熔断限流、调用链追踪等能力。 2. 高可用、高并发任
腾讯开源
2021/07/02
2.3K0
【开源公告】TKEStack正式开源
TKEStack是腾讯开源的一款集强壮性和易用性于一身的企业级容器编排引擎,以极简的向导式界面提供了容器应用的全生命周期管理能力,帮助用户在私有云环境中敏捷、高效地构建和发布应用程序。腾讯从2009年开发容器编排平台,到目前为止已经支撑了公司内外部海量容器业务的平稳运行。 此次TKEStack开源,会将腾讯内部各BG在容器领域的使用经验和技术大量融入。同时TKEStack将通过技术开源和发展生态协同,不断拓展技术领域边界,构建健康良好向上的生态协同环境,为AI 、Big Data、边缘计算、IoT等技术
腾讯开源
2020/04/20
2.1K1
教育部发布2018年计算机科学与技术、软件工程学科排名;7岁女孩开发游戏;腾讯开源sluaunreal,加速游戏开发
教育部学位与研究生教育发展中心公布全国第四轮学科评估的结果在 95 个一级学科范围内开展(不含军事学门类等 16 个学科),共有 513 个单位的7449个学科参评。
前端教程
2018/08/16
4440
教育部发布2018年计算机科学与技术、软件工程学科排名;7岁女孩开发游戏;腾讯开源sluaunreal,加速游戏开发
推荐阅读
相关推荐
跨游戏引擎跨平台的TypeScript运行时开源了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档