Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
2.1.4 Release source code.tar.gz | 2024-06-26 | 28.2 MB | |
2.1.4 Release source code.zip | 2024-06-26 | 28.4 MB | |
README.md | 2024-06-26 | 2.8 kB | |
Totals: 3 Items | 56.5 MB | 0 |
新增功能:
- 优化Array元素为struct类型的遍历,新增PairsLessGC API,使用PairsLessGC遍历时,只会生成一个userdata且复用它。
- Array、Set遍历支持反向遍历。
-
lua值复制支持:REPNOTIFY_Always 选项,当它生效时,DS端的赋值无论值是否改变都会通知客户端. 示例:
:::lua local LuaActor ={}
function LuaActor:GetLifetimeReplicatedProps() local ELifetimeCondition = import("ELifetimeCondition")
return { { "HP", ELifetimeCondition.COND_None, EPropertyClass.Float, RepNotifyCondition = 1}, }
end
return Class(nil, nil, LuaActor) 4. LuaWrapper里面导出的类型,原本有"+"、"-"、"*"、"/"等操作支持的,分别增加add、sub、mul、div等API,区别在于操作符运算结果返回会新增一个userdata,而add、sub、mul、div等会把结果加到自身以减少对象生成减少GC压力。
:::lua local A = FVector(1,2,3) local B = FVector(2,3,4) print(A, A:add(B)) --地址将会是A、A print(A、A+B) --地址将会A和一个新对象 5. 调用有返回值的UFunction函数,支持多传一个额外参数接收返回结果,以减少对象生成减少GC压力。 6. Delegate的绑定支持直接绑定UObject和它的UFunction,且它们无须手工解绑,范例:
:::lua -- 绑定操作,如果是单播Delegate则用Bind替代Add Button.OnClicked:Add(UIRoot, "OnButtonClickedBlueprintFunction")
--解绑操作,一般不需要 Button.OnClicked:Remove(UIRoot, "OnButtonClickedBlueprintFunction")
机制优化或者bug fixed:
- Array、Set等普通遍历,比之前少生成一个对象。
- Array、Set、Map等类型参数检查加强:之前没有检查它们的内部元素是否匹配,现在改为严格匹配内部元素。
- 修复checkUInterfaceProperty函数的错误提醒格式,之前可能会导致崩溃。
- 修复可能存在的UObject的lua函数存在判定错误。
- LuaWrapper导出的类型,访问它的static变量时,只生成一份数据
- Fixed [#587] [#589] [#590]
- Delegate返回值由lightuserdata改为int64类型。
- 优化访问Delegate类型成员变量,不再每次访问都生成一个userdata
- 加速SimpleString的hash计算
- 修复Lua值复制DS端赋值同样的变量(REPNOTIFY_OnChanged条件下),可能导致变量不变但是也通知到客户端的bug
- 修复UObject按Instance Hook比CDO类函数多的时候,可能会导致前者函数Hook被跳过的bug
- lua支持到5.4.3版本
- 补全UE5.1/5.2下缺失的LuaWrapper API
- 完整适配 Unreal Engine 5.4
Full Changelog: https://github.com/Tencent/sluaunreal/compare/2.1.3...2.1.4