Skip to content

Releases: Tencent/UnLua

2.3.6

07 Nov 04:01
Compare
Choose a tag to compare

Added

  • 对UE5.3的支持 #642

Fixed

  • lua在GC时偶现崩溃的问题 #626
  • 覆写的函数的Out参数是C++结构体时,Lua不返回会导致崩溃 #634
  • 日志参数不匹配的问题 #642
  • 访问来自非native父类的property时检查有效性 #661
  • 同一个Lua函数绑定多个不同签名的代理导致崩溃 #660
  • 应该支持从L构造FLuaValue类型 #666
  • 特定情况下在Lua中调用TArray的Add接口时内存对齐引起的问题 #668
  • 兼容蓝图Recompile导致FuncMap被清空的情况 #669
  • 清理一些UE5下的编译警告

Changed

  • FObjectRegistry::Push增加Valid检查 规避一些容器内野指针的情况 #663
  • 每个FLuaEnv持有独立的ClassRegistry和EnumRegistry

2.3.5

29 May 10:44
Compare
Choose a tag to compare

Added

  • 对UE5.2的支持
  • 增加配置选项自定义Lua版本
  • 增加配置选项启用FText支持
  • 适配UE5.1的UHT #600 #607
  • 禁止在Lua的Initialize函数中访问当前UObject上的UFunction
  • 在Lua中loadstring失败时的全路径错误信息输出

Fixed

  • ENABLE_PERSISTENT_PARAM_BUFFER模式下 Buffer被递归调用的覆盖 #563
  • 在启用AsyncLoadingThread时,异步加载后触发绑定对象到Lua可能引起崩溃

Changed

  • 调整配置文件名称为UnLuaSettings.ini #596
  • 在Lua中NewObject时,Outer传nil时使用TransientPackage #604
  • 当不启用类型检查时,若函数要求有返回值但Lua里不返回,则用默认值作为返回值

Removed

  • 移除 SUPPORTS_RPC_CALL

2.3.3

02 Feb 10:49
Compare
Choose a tag to compare

Added

  • 增加对EnhancedInput输入绑定的支持
  • 增加 启用Insights分析支持传参方式 配置选项
  • 热重载失败时输出错误日志 #581
  • 自动将启用的UnLuaExtensions的脚本加入打包设置
  • 支持按需重新加载蓝图枚举,也支持用UnLua.Ref来保持引用 #585

Fixed

  • 编辑器使用Development环境启动后,加载Lua脚本报错时代码优化导致longjmp崩溃的问题
  • 在Lua中遍历TMap字段的Values接口返回值时引起的崩溃 #583
  • 协程里require脚本加载异常 #551
  • 加载socket.http模块时报错

Changed

  • 在启用类型检查时,非法参数不写入实际参数内存块,避免报错后又在使用时崩溃
  • UnLuaExtensions的启动时间提前,避免在入口脚本里直接访问的时候这些模块还没启动

2.4.0

09 Dec 11:26
Compare
Choose a tag to compare
2.4.0 Pre-release
Pre-release

Added

  • 基于2.3.2的BETA版本,支持使用Lua来扩展编辑器示例场景
  • UnLuaInterface 增加 Run in Editor,允许编辑器非PIE(不运行游戏)状态下绑定到Lua
  • 支持Lua扩展自定义菜单、工具栏、控制台命令等

Fixed

  • 打包时提示Binaries/Lua.dll被占用

2.3.2

09 Dec 11:20
Compare
Choose a tag to compare

Added

Fixed

  • UObject绑定后的元表和其他表相等判断时结果错误 #281 #567
  • 访问UStruct内部的委托会check #561
  • 多次传递委托类型的参数到同一函数时,可能因为Owner失效而无法回调 #566
  • UE5.1之后构造FProperty报deprecated #569
  • pairs在参数异常时返回空迭代器,避免lua调试时访问报错
  • 热重载upvalue没有生效
  • UObject.Load传入中文路径时乱码

Changed

  • 热重载模式为禁用时,不再加载HotReload.lua,不会替换全局的require
  • 在使用LoadObject加载不到对象时不再输出加载失败的日志,而是直接返回nil

2.3.1

11 Nov 11:40
Compare
Choose a tag to compare

Added

  • 支持UE5.1
  • 支持PS5
  • 增加 UnLua::PrintCallStack(L) 的接口来方便在IDE里断点直接执行输出lua堆栈
  • 更多容器和结构体相关的访问保护,增加悬垂指针检查选项
  • UnLuaExtensions 新增可选集成 lua-protobuflua-rapidjson
  • 增加 FLuaEnvOnDestroyed 事件

Fixed

  • Lua报错输出脚本路径如果太长会被截断
  • xxx:IsA(UE.UClass) 会报错
  • Lua覆写Out返回值时无法返回nil #539
  • 安装 Apple ProRes Media 插件后会导致UnLua启动崩溃 #534
  • Actor的Struct成员变量在Lua里引用,释放后仍旧可以访问 #517
  • print 时参数过多可能会导致Lua栈溢出的问题 #543
  • LuaGC使用了未初始化的参数 #548
  • NullPointer error in function 'CheckPropertyType' #549
  • 找不到 UnLua.Input 模块时不会再check了
  • 访问非TArray的结构体数组报错 #554
  • 服务端 Possess 后,新角色上的 InputComponent 输入绑定无效 #553
  • mac打包找不到libLua.dylib问题 #557

Changed

  • 启用类型检查时,需要依次返回返回值和Out参数,而不能像旧版本一样忽略不返回

2.3.0

08 Oct 12:32
Compare
Choose a tag to compare

Added

  • 支持使用 UnLua.PackagePath 的方式来搜索Lua文件,也支持从插件Content目录加载
  • 支持Android下的x86_64
  • 支持自定义预绑定类型,参考预绑定类型列表配置选项
  • 支持UE5下的蓝图UMG输入绑定,使用新增的 UnLua.Input 模块,可以做到更细节的输入绑定
  • UnLua.RefUnLua.Unref 接口,提供将 UObject 生命周期和Lua侧同步的管理机制
  • 提升Lua访问UE函数和属性的性能
  • 自定义生成Lua模版

Fixed

  • Mac下编辑器的dylib无法加载
  • PushMetatable时会使用旧的metatable #515
  • Delegate的闭包函数的upvalue无法被gc #516
  • 在Lua中访问TArray不存在的字段会报stackoverflow
  • 自动保存的打包设置没有生效
  • UE5下打包后UnLua配置没有正确加载

Changed

Removed

  • 移除 AddPackagePath 接口

2.2.4

01 Sep 11:31
Compare
Choose a tag to compare

Added

  • 增加最佳实践工程示例 Lyra with UnLua
  • 支持配置按C/C++编译Lua环境
  • 支持Lua启动入口脚本配置
  • 支持Lua环境手动启动参数
  • 默认自动将 Content/Script 目录加入打包设置
  • 增加一些指针对象的合法性检查
  • UnLua.HotReload 支持手动指定热重载模块列表
  • 支持Commandlet导出蓝图智能提示信息 #507

Fixed

  • UE5下的Script编译警告
  • 智能提示文件重复生成 #498
  • 智能提示蓝图类型使用 _C 后缀 #493
  • PIE运行状态下保存对象,可能引起编辑器崩溃 #489
  • bAutoStartup 配置选项没有生效
  • UnLuaHotReload.lua 不存在时会报错
  • 通过C++类绑定的时候使用自动创建脚本功能会崩溃 #490
  • 修复一些智能提示被过滤了的情况
  • 监听嵌套界面里的组件的事件会导致组件无法被回收
  • 覆写C++类型的函数后在蓝图编辑器里调用需要刷新节点才能编译过 #500
  • Lua持有结构体下的TArray字段,在结构体本身被GC后访问该数组会导致崩溃 #505
  • TCHAR_TO_XXX 等宏应该只在行内传参使用 #508
  • 退出游戏时候可能访问已经被释放的 UUnLuaManager 引起的崩溃 #504
  • UE5下在编辑器运行游戏的同时编译并保存动画蓝图会Crash #510

Changed

  • Lua模版文件中使用 @type 注解 #498
  • 使用智能指针保存 UEnum 类型指针来区分有效性 #488
  • Lua源码作为外部第三方模块引入,默认使用C编译
  • Lua生成模版中统一使用 UnLua.Class,并增加类型注解
  • 调整所有LuaLib的异常抛出形式为 luaL_error 而不是仅输出错误日志
  • 切换场景时不再强制进行LuaGC

2.2.3

15 Jul 11:43
Compare
Choose a tag to compare

Added

  • 支持蓝图的BlueprintFunctionLibrary绑定到Lua与覆写
  • 支持CDO绑定
  • 支持自定义Lua模块定位设置
  • 生成Lua模版文件时增加@class注解
  • UnLua内置API的智能提示
  • 生成智能提示时显示更详细的进度条

Fixed

  • 打包DS服务端后,预先放在地图里的绑定过Lua的Actor会导致崩溃 #479
  • 退出PIE时一些被覆写的Lua函数不会被执行 #472
  • 切换场景时访问已释放对象上的属性时会引起崩溃 #482
  • 同一个委托对象传递给不同函数来绑定和解绑,会出现无法解绑的问题 #471
  • Lua传递给蓝图的FName属性中文会乱码 #474
  • 传递给Lua模块的...参数没有生效
  • 退出PIE时父类被覆写的UFunction没有还原
  • UE4命名空间的兼容开关没生效
  • Editor下PIE判断不准确 #468
  • 真机上UnLuaExtensions模块启动比UnLuaModule晚,导致luasocket没有加载 #484
  • 调用静态导出函数的TCHAR*类型参数传递为空 #486

Changed

  • 移除UnLua.luaUnLua可作为全局对象访问,不需要require "UnLua"

2.2.2

17 Jun 11:55
Compare
Choose a tag to compare

Added

  • 优化绑定检测流程,避免在大量对象创建时导致性能降低 #457
  • 通过菜单快速在文件管理器中打开绑定的Lua文件 #437
  • 防止Lua代码无限循环超时设置 #428
  • 支持添加多播代理绑定相同脚本不同对象实例函数 #439
  • 更准确的内存分配统计
  • lua.gc 控制台命令
  • UnLua 运行时/编辑器设置的子菜单
  • 编辑器设置支持中文显示

Fixed

  • 命令行 -server 启动时 UnLuaModule 没有启动 #440
  • TArrayTMap 进行 pairs 遍历时使用引用而不是复制 #442
  • 实现了FTickableGameObject的对象在Tick里调用自身被Lua覆写的方法会崩溃 #446
  • 返回 TSubclassOf<> 到C++为空 #445
  • UE4.27下无法通过UE.XXX访问游戏项目模块中导出的原生类型 #448
  • 从Lua按传递引用到蓝图的TArray引用变成了空Array #453
  • PIE过程中如果保存了覆写的蓝图,会导致蓝图资源损坏 #465
  • CDO绑定时需要过滤掉 SKEL 类型的对象 #460
  • 分配在栈上的本地变量会引起 CacheScriptContainer 缓存错误导致崩溃 #455
  • 热重载时报 invalid TArray/TMap 的错误
  • PIE过程中如果保存了覆写的蓝图,会导致蓝图资源损坏 #465
  • Linux下带Editor编译报错 #467