Releases: Tencent/puerts
Unity_v2.0.1,ApiLevel:32
中文版本请查看 doc/unity/zhcn/changelog.md
- Fix: NestedType was not declared correctly in
link.xml
#1460 - Fix:
out
parameters with ValueType might cause crash in xil2cpp mode. #1460 - Fix: default value of parameters in extension method was not correct in xil2cpp mode #1456
- Fix: JSObject was not recycle correctly
difference between Node.js/Quickjs/V8: wiki
Unity_v2.0.0,ApiLevel:32
中文版本请查看 doc/unity/zhcn/changelog.md
- Fix:
debugpath
was not work and make VSCode debug not availabled - Fix:
puer.$genericMethod
cannot get the genericMethod from super class in xil2cpp mode #1417 @danij91 - Fix:
GetFriendlyName is not a function
when generating extensionInfo #1437
This is the first stable version of 2.0.0
. Shout out to everyone who attending the test.
If you need any help in upgrading. See upgrade guide
这个版本是2.0第一个正式版本。感谢所有参与过2.0内测的朋友。
若对升级有疑问可以参见升级指南
difference between Node.js/Quickjs/V8: wiki
Unity_v2.0.0-rc.1,ApiLevel:32
中文版本请查看 doc/unity/zhcn/changelog.md
difference between Node.js/Quickjs/V8: wiki
Unity_v2.0.0-rc.0,ApiLevel:32
中文版本请查看 doc/unity/zhcn/changelog.md
- Fix: struct's paramless default ctor was unable to use #1301
- Fix: op_xxxx method was unable to use after generated #1399
- Fix: GetFriendlyName was not defined after generated
- Fix: the Constructor of BlittableCopy Type didn't invoked
- Optimization: isESM check optimize #1391
difference between Node.js/Quickjs/V8: wiki
Unreal_v1.0.4
mac下如果遇到移入废纸篓问题,请
cd Plugins/Puerts/ThirdParty
find . -name "*.dylib" | xargs sudo xattr -r -d com.apple.quarantine
新增特性
-
容器GetRef支持LinkOuter
-
默认添加UObject的IsA函数的静态绑定
-
setTimeout, setInterval增加argumentgs的支持
-
静态绑定加入fast api call支持
-
添加C#版本的默认值收集模块,用于支持ue5.2
-
添加PUERTS_FORCE_CPP_UFUNCTION选项:打开后在js调用js实现的蓝图方法时,直接调用而不需要在引擎段绕一圈
-
反射支持TFieldPath类型
-
添加栈生命周期的原生Buff转js的ArrayBuffer的支持,fix #1360
优化
-
清理大部分ue5的deprecated api使用
-
生成时如果蓝图路径和文件名含特殊符号,忽略并打印warning,如果基类非法,就跳到更基础的基类来继承
-
声明生成过滤掉+号
-
在push对象到js的阶段就处理好引用方向(是原生对象引用js,还是js引用原生对象),简化逻辑,并提升性能
-
对象IsUnreachable也作为无效状态
-
非GameThread加载代理蓝图,js相关初始化延迟到第一次push到js fix #1229
-
instancof不走ts,提升静态绑定的性能 (#1246)
-
静态绑定返回值如果是非const引用,按指针处理,不用特别指明 fix #1258
-
去掉EscapableHandleScope的使用,fix #1291
-
JsEnv.Build.cs的ShadowVariable设置为Warning fix #1189
-
跳过非法蓝图结构体,蓝图类的生成
变更
-
如果一个方法是蓝图静态方法,而且第一个参数是__WorldContext的话,调用js时忽略该参数 fix #1210
-
makeUClass声明为
@deprecated
-
Puerts模块的LoadingPhase改为PostEngineInit,这会导致GameInstance的ReceiveInit支持不了
-
如果继承引擎类的ts类成员变量类型为UActorComponent子类,将添加组件,而不是仅仅添加一个变量,这会导致业务代码调整
-
定义了组件,就自动在蓝图创建组件,无需在构造函数中通过代码创建,规避了UE的一些多线程加载问题,也更简单些
-
构造函数无法访问Component,建议一些初始化操作放到ReceiveBeginPlay,或者直接在生成的代理蓝图上修改
-
不能通过SetupAttachment对component的层级修改(因为构造函数访问不了,ReceiveBeginPlay又太晚了),需要生成的代理蓝图上手动修改
-
bug修复
-
修复在unity v2发现的问题:#1203 ,该问题理论上在ue也有机率发生
-
linux编译找不到libnode.so
-
反射调用,参数转换抛出异常后不应该继续往下走
-
修复运行Commandlet时的崩溃问题 (#1247)
-
静态模板const USTRUCT*参数报错的问题,fix #1258
-
代理蓝图,第二次PIE不生效的问题
-
ue 5.1按钮消失的问题
-
增加头文件生成的依赖引入
-
cjs,esm加载的一些不兼容情况修复
-
中文名字蓝图会导致ue_bp.d.ts重复声明的问题
-
蓝图Interface声明生成无namespace,fix #1304
-
解决反射调用代理蓝图函数,引用参数传递失败的问题
-
解决子类和基类生成蓝图同时被删除,先生成子类再生成基类时导致的REINST assert
Unity_v1.4.2,ApiLevel:19
中文版本请查看 doc/unity/zhcn/changelog.md
- fix: the crashed after getting a StackOverflowException #1208
- Fix: the Error message threw from JS to CS would have unexpected character.
- Fix: if an error is thrown in constructor, some valuetype would become null unexpectly.
- fix:when passing a JS number to C#
object
. the number would be cut to a Int.
difference between Node.js/Quickjs/V8: wiki
Unity_v2.0.0-pre.5,ApiLevel:32
中文版本请查看 changelog-hans.md
- Fix: Error occurs when generating classes with op_explicit #1363.
- Fix: Issue with ClearModuleCache causing a crash #1364.
- Fix: Error in generating when struct produces recursive definition through pointers in xil2cpp mode #1365.
- Fix: Crash when printing struct in xil2cpp mode #1376.
- Fix: Crash when assigning JSObject to numeric type C# Field/Property #1383.
- Fix: Issue with ineffective Filter.
- Optimization: Changed xil2cpp mode's c plugin code to be generated instead of being included in the package.
- Optimization: Added FAQHelper to optimize code generation and error prompts during build.
- Optimization: Improved error messages for reflection calls, compatible with trimmed interfaces.
- Optimization: Changed the separator for console.log elements from comma to space. #1373
- Optimization: Improved Node.js event loop #1093 #1279.
- Optimization: Suppressed warnings from DefaultMode's StaticWrapper.
- Feature: Added JSObject.Get(string) and refactored ExecuteModule to use this Get interface.
- Feature: Added Filter for xil2cpp valuetype declaration.
difference between Node.js/Quickjs/V8: wiki
Contributors:
@xtutu
Unity_v2.0.0-pre.4,ApiLevel:31
中文版本请查看 changelog-hans.md
[2.0.0-pre.4] - 2023-05-29
- Fix: the Error message threw from JS to CS would have unexpected character.
- Fix: doc generating fix #1322 #1329
- Fix: if an error is thrown in constructor, some valuetype would become null unexpectly.
- optimize: performance in WebGL is optimized.
- Fix: dts with Enumerable would throw compile error #1322
- To distinguish the meaning between Unity Il2cpp backend, we named the new il2cpp binding mode(v2 mode) to xIl2cpp mode.
- Fix: in xIl2cpp mode, create Puerts.ArrayBuffer in csharp would make its memory unstable. #1340
- Fix: in xIl2cpp mode, it would crash when returning a valuetype in a method with returntype
System.Object
. - Fix: in xIl2cpp mode, it would crash when transfering nullable valuetype. #1320
- Fix: in xIl2cpp mode, it would crash when setting a valuetype to ref/out arguments. #1343
- Register logic refactor: #1317. Now we have a new access control ability.
difference between Node.js/Quickjs/V8: wiki
Contributors:
@sesky4
Unity_v2.0.0-pre.3,ApiLevel:31
中文版本请查看 changelog-hans.md
- Fix: ios Node.js cannot start for PuerTS's openupm version #1302
- Fix: the dependencies of DontBinding methods are still generated in DTS generation #1295
- Fix: some properties only have setters will report errors in wrapper generation #1298
- Fix: several problems with static fields in il2cpp binding mode #1288
- Fix: il2cpp binding mode + Unity2021 will crash when using structs reflecting #1288
- Fix: still cannot find generic classes after link.xml generation #1288
- Feature: add C# Enumerable forof support on JS side #1234
- Feature: refactor old ExecuteModule implementation to be consistent with il2cpp binding mode. At the same time, import 'csharp' and import 'puerts' are no longer supported, and it is recommended to use global variables.
- Feature: add
IResolvableLoader
to implement node_modules loading and solve #1270. - Feature: add
IBuiltinLoadedListener
to allow Loader to do some operations after the built-in script is executed, which is convenient for encapsulating third-party Loader.
difference between Node.js/Quickjs/V8: wiki
Unity_v2.0.0-pre.1,ApiLevel:30
中文版本请查看 doc/unity/zhcn/changelog.md
- Add a new language binding directly based on il2cpp and there will be huge performance benifit. see our docsite for more information.
- The package layout of unity code in this repository is changed to UPM layout.
- Move the commonjs-support package into this repository.
breaking change since 1.x
System.DateTime
will no longer translate toDate
in Javascript #1145- TypedValue could pass to a object only. You will no longer use it to select overload.
- If a method has no overload and default param, PuerTS will not check the type of the params in ReflectionMode(SlowBinding).
- The accessor key of ref object change to
[0]
instead of['value']
. (If all your code was usingpuer.$ref
orpuer.$unref
, it will take no effect) - As what we mentioned in changelog of 1.4: there will be no
require
by default in 2.0.
difference between Node.js/Quickjs/V8: wiki