新增特性
-
容器新增UE.BuiltinDouble,fix #1775
-
v8后端支持字节码
-
支持Editor Only Properties 增加_EditorOnly后缀 (#1802)
-
支持UE 5.5
-
v8后端添加websocket的支持、
-
模板绑定添加对getter、setter的支持
-
ue 5.x 添加对FHitResult::GetActor的模板绑定
-
FVector等几个系统USTUCT改为用模板绑定,以解决ue5下的精度丢失问题,fix #1904
-
支持仅setter的属性
-
支持不在Context目录的蓝图加载 #1962
优化
-
esm module两次读文件的问题,fix #1779
-
反射new,Class.Load, Class.Find, Class.StaticClass加上关联的UStruct是否无效的检查
-
weakfieldl有效的时候,proeprty可能无效 (#1803)
-
模板绑定利用FObjectCacheNode的UserData减少一次原生c++里的map插入和删除
-
自动拷贝Plugin目录下的.d.ts到 Typing目录,以避免维护两份.d.ts (#1908)
-
尽可能减少std::string的使用,减少此类问题(https://github.com/Tencent/puerts/issues/1936)发生的概率
-
对于原生cpp绑定,若未绑定构造函数,则在ts声明中加入abstract标记,可以在ts中尝试构造时提示报错 (#1971)
-
UE和CPP模块加上__esModule=false
变更
-
移除FJsEnv::Start直接Eval脚本的能力
-
UStruct指针nullptr时,返回js null,另外UObject,纯c++对象都修改为返回null(之前是undefined),fix #1834
bug修复
-
修正UE.BuiltinBool访问失败的问题
-
解决模板绑定const script_type 参数崩溃的问题,(除了const char外)映射到$Ref,相关issue: #1793
-
解决模板绑定返回std::string&会调用移动构造的问题,见issue: #1793
-
恢复生成蓝图变量的默认Flags,与过去版本保持一致 (#1814)
-
自动生命周期管理的puerts.toDelegate接口产生的UDynamicDelegateProxy在GC时可能崩溃 (#1819)
-
SoftObjectPtr改为通过InstanceTemplate创建对象,规避backend-quickjs的这个bug: puerts/backend-quickjs#20 ,fix #1907
-
解决模板绑定const ustruct *匹配多个特化的问题(C2752) fix #1917
-
解决模板绑定对于const SomeClass &参数的默认值会读取到已经释放栈变量的问题,fix #1924
-
静态绑定IsInstanceOf得先判断是不是Object,fix #1929
-
处理内存重用导致的Check failed: Handle not reset in first callback. See comments on |v8::WeakCallbackInfo| fix #1930
-
修复静态绑定: 若结构体没有绑定构造函数则不会生成构造函数定义 (#1951)
-
JSObject拷贝构造和赋值重载由于没有声明HandleScope导致崩溃的问题
-
修复 TCHAR 类型生成的声明错误 (#1977)
-
解决mixin的inherit = true时,不继承蓝图组件层级的问题 fix #1985
-
发生unhandledRejection时,应清理WeakMap fix #1991 避免内存释放过慢
-
修复绑定当帧销毁的对象身上的 Delegate,有概率触发崩溃的问题
-
类静态成员规避FName导致的大小写问题 fix #1882
-
quickjs默认256k的栈,有些场景会stackoverflow(比如跑tsc),提升到1M
-
NewArray报t.hasOwnProperty is not a function fix #2001
mac下如果遇到移入废纸篓问题,请
cd Plugins/Puerts/ThirdParty
find . -name "*.dylib" | xargs sudo xattr -r -d com.apple.quarantine