Skip to content

Releases: Tencent/puerts

Unity_v1.4.1,ApiLevel:19

02 Mar 07:46
Compare
Choose a tag to compare

中文版本请查看 doc/unity/zhcn/changelog.md

changelog since 1.4.0

  1. fix: the crashed after getting a StackOverflowException #1208
  2. fix: could not get any log in inspector with Node.js backend. #1201
  3. fix: if a error is thrown in ESM and the message contains line ends, the error message could be incorrect. #1188
  4. fix: did not filt a obsoleted property setter/getter. #1152
  5. fix:when passing a JS number to C# object. the number would be cut to a Int.
  6. feature: JsEnv.ClearModuleCache can clear ESM module cache now.
  7. feature: now you can use JSObject to store a JS function. #1143 #1144
  8. feature: add EXPERIMENTAL_PUERTS_DISABLE_SLOWBINDING. It will be useful in somewhere need to do access control. This feature is still experimental and will be changed in the future.
  9. optimize: do not lock the mutex when destroying a JSFunction or JSObject.

difference between Node.js/Quickjs/V8: wiki

Unity_v1.4.1-pre.2,ApiLevel:19

09 Feb 10:43
Compare
Choose a tag to compare
Pre-release

中文版本请查看 doc/unity/zhcn/changelog.md

  1. fix: could not get any log in inspector with Node.js backend. #1201
  2. fix: if a error is thrown in ESM and the message contains line ends, the error message could be incorrect. #1188
  3. optimize: do not lock the mutex when destroying a JSFunction.
  4. feature: JsEnv.ClearModuleCache can clear ESM module cache now.

difference between Node.js/Quickjs/V8: wiki

Unreal_v1.0.3

02 Feb 08:58
Compare
Choose a tag to compare

mac下如果遇到移入废纸篓问题,请

cd Plugins/Puerts/ThirdParty
find . -name "*.dylib" | xargs sudo xattr -r -d com.apple.quarantine 

新增特性

  • ue类型对应的js类型增加类型名称(编辑器全路径),以便于打印堆栈dump的时候分析

  • 静态绑定void*参数支持任意原生对象传入

  • 添加常用方法UDataTableFunctionLibrary::Generic_GetDataTableRowFromName的静态绑定

  • 手动删除蓝图,重启后自动生成

  • puerts::Object、puerts::Funcion加入对JsEnv的生命周期跟踪,降低使用的难度

  • cjs和mjs配合优化,支持package.json中通过"type": "module"指定为esm模块,支持在esm中加载.cjs(cjs模块)。

  • 添加Puerts.Gen FULL,蓝图全量生成功能

  • 默认生成所有struct的声明

  • 添加控制台命令(puerts ls,puerts compile)

  • 生成代码时,如果加载的蓝图GeneratedClass为空报错

  • nodejs版本下,优先调用nodejs的require,加载不成功再使用puerts的加载逻辑

  • 编辑器下,quickjs后端默认用dll版本,去掉该后端下不能在业务模块静态声明的问题

  • 增加运行时 JavaScript 路径配置

优化

  • 反射性能优化

  • 蓝图结构体都生成到ue_bp.d.ts

  • 优化大量代理蓝图以及ts代码的启动速度

变更

bug修复

  • 解决刚创建蓝图但未保存,生成d.ts的崩溃

  • mixin对输出值设置无效的问题

  • 解决带Out参数蓝图调用另一个重定向到ts的Out参数方法,ts中设置Out参数无效的问题

  • DefaultJSModuleLoader加载名字带点号的模块

  • react-umg声明,对于struct改为Partial来自动处理成可选字段,可以避免引用UE模块时产生的名字空间问题

  • 解决如果一个package含超过一个类型,只生成一个类型的bug

  • 解决ts继承BlueprintFunctionLibrary在Editor下只跑一次,打包后不跑的问题

  • 结构体两次Init的修正

  • FName大小写的问题导致函数为空的问题

  • json文件加载失败的问题

  • 解决继承链上有同名类导致的tid冲突

  • ue5生成声明忽略Engine.Transient包,解决ue5改包下类的.d.ts报错问题

  • 静态绑定和pesapi的int64、uint64参数,不传bigint都统一用默认值

Unity_v1.4.1-pre.1,ApiLevel:19

27 Jan 13:39
Compare
Choose a tag to compare
Pre-release

中文版本请查看 doc/unity/zhcn/changelog.md

  1. fix: did not filt obsoleted property setter/getter. #1152
  2. feature: add console.time. #1170
  3. feature: now you can use JSObject to store a JS function. #1143 #1144

difference between Node.js/Quickjs/V8: wiki

Unity_v1.4.1-pre.0,ApiLevel:19

23 Dec 10:19
Compare
Choose a tag to compare
Pre-release

中文版本请查看 doc/unity/zhcn/changelog.md

  1. fix:when passing a JS number to C# object, the number would be cut to an Int.
  2. feature: add PUERTS_DISABLE_SLOWBINDING. It will be useful in doing access control.

difference between Node.js/Quickjs/V8: wiki

Unity_v1.4.0,ApiLevel:19

24 Nov 07:25
Compare
Choose a tag to compare

this is 1.4.0 release | 这是1.4正式版

[en] feature changed since 1.3
  1. support apple silicon #591
  2. upgrade the default v8 to 9.4,nodejs to 16
  3. full platform support for Node.js
  4. make all members become configurable #667
  5. add require('puerts').getLastException to get the Error instance #629
  6. support multi inspector client (including hot-reload).
  7. add import.meta.url when module is loading
  8. Add JsEnv.Backend and add some GC API
  9. add global variables CS and puer. migerating to ESM module. CommonJS will deprecated in the future.
  10. add support for Android x86_64 (v8/quickjs)
  11. add Puerts.IModuleChecker. if your ILoader implement this interface. Then you can indicate which extname of jsfile will be treated as ESM Module.
[zhcn] 自1.3版本以来的功能变更
  1. 支持apple silicon芯片 #591
  2. 升级默认v8到9.4版本,Node.JS到16版本
  3. 支持安卓和iOS平台的Node.JS
  4. 所有属性改为configurable #667
  5. 添加require('puerts').getLastException接口 #629
  6. 支持同时连接多个inspector(包括热重载功能)
  7. 为模块添加import.meta.url
  8. 添加JsEnv.Backend,提供了一些内存管理接口
  9. 添加全局变量CS以及puer,向ESM规范过渡,CommonJS规范未来逐渐不建议使用
  10. 添加v8和quickjs的android x86_64支持
  11. 新增Puerts.IModuleChecker。传入的ILoader如果实现了该接口,则可以自定义哪些文件后缀会被识别为ESM模块
------

you can see other bugfixes log in doc/unity/en/changelog.md or doc/unity/zhcn/changelog.md

difference between Node.js/Quickjs/V8: wiki

Unity_v1.4.0-rc.7,ApiLevel:19

15 Nov 07:39
Compare
Choose a tag to compare
Pre-release

中文版本请查看 doc/unity/zhcn/changelog.md

  1. fix:ts error when some methods are returning Task without GenericType #1027
  2. fix:Nested class in Generic class will cause error in StaticWrapper #1030
  3. fix:illegal unity api access erro when creating JsEnv not in main thread#1049
  4. fix:IsByRefLike missing error in Unity2021.1 #1050
  5. feature:add support for Android x86_64 (v8/quickjs)
  6. feature:add Puerts.IModuleChecker. if your ILoader implement this interface. Then you can indicate which extname of jsfile will be treated as ESM Module.

difference between Node.js/Quickjs/V8: wiki

Unity_v1.4.0-rc.6,ApiLevel:19

20 Oct 10:03
Compare
Choose a tag to compare
Pre-release

中文版本请查看 doc/unity/zhcn/changelog.md

  1. support ambigious methods calling after generated staticwrapper. #1020
  2. fix a bug that after blittablecopy staticwrapper generated, passing two or more struct from C# to a JSFunction will get wrong JS arguments #1018
  3. fix Array Type arguments will cause error in staticwrapper #1015
  4. refactor the template of wrapper and get a little performance improvement report
  5. add missing '--jitless' flag for ios PuerTS with nodejs backend
  6. fix invalid meta in openupm package

difference between Node.js/Quickjs/V8: wiki

Unity_v1.3.9,ApiLevel:16

30 Sep 08:38
Compare
Choose a tag to compare

中文版本请查看 doc/unity/zhcn/changelog.md

  1. fix a bug that will throw 'undefined is not a xx' error when running multi jsenv parallel.
  2. fix the problem that circular dependency will cause crash when loading ESM
  3. fix the problem that ESM throws an error when loading dependency with relative path
  4. fix the problem that dts reports an error when generating nullable types
  5. add import.meta.url in es module js

difference between Node.js/Quickjs/V8: wiki

Unity_v1.4.0-rc.2,ApiLevel:18

28 Sep 13:53
Compare
Choose a tag to compare
Pre-release

中文版本请查看 doc/unity/zhcn/changelog.md

  1. full platform support for Node.js (i.e. Android and iOS support added). upm package now uses Node.js Backend by default.
  2. In order to make the Node.js function more convenient to use, and also to solve the problem of WebGL version in WeChat mini-game, from this version on, add global variables CS and puer, corresponding to the original require('csharp') and require('puerts'). Please change the using of require to global.CS, global.puer, import 'xxx'. The require in PuerTS will be considered to be removed in version 1.5.
  3. Add JsEnv.Backend and add some GC API. LowMemoryNotification has moved into it too.
  4. refactor NodeRunner
  5. ExecuteModule handling of multi-level dependencies fixed.
  6. GeneralSetterManager/GeneralGetterManager optimization #688
  7. fix the bug that inspector break point + setInterval will cause crash #707
  8. support multiple inspectors connection for one single JsEnv, hotreload can also be used with inspector at the same time now #841
  9. remove Node.js backend's --no-browser-globals
  10. fix the problem that circular dependency will cause crash when loading ESM
  11. fix the problem that ESM throws error when loading dependency with relative path
  12. add import.meta.url when module is loading
  13. fix the problem that dts reports an error when generating nullable types

difference between Node.js/Quickjs/V8: wiki