【正式版本已发布】 Cocos Creator 3.8.4 社区公测帖

因版本计划变更,3.8.5 版本改成了 3.8.4。原计划的鸿蒙特供版本会在后续跟进情况发布。

该版本修复了 不少错误,增强了 Tween 系统,也增加了一些新功能。欢迎大家测试反馈。

已知问题:

  • XR 还没适配新管线
  • 淘宝小游戏分离引擎功能目前功能有异常,ios可以运行,android运行不了;需要淘宝官方处理,后续有需要使用分离引擎功能,烦请咨询淘宝官方。

2024.9.30

这个版本主要提升了自定义渲染管线的性能,修复了编辑器的内存问题。

下载链接

Windows
Mac

引擎

● 修复鼠标进入、离开窗口的事件与节点的进入、离开事件名字冲突的问题 PR

● 修复淘宝小游戏 websocket 回调函数的 this 指针问题 PR

● 修复 Xcode 16.0 编译问题 PR

● 修复了可定制管线编辑器warning PR

● 修复了可定制管线reflection probe烘培报错 PR

● 回退了可定制管线后处理模块3.8.4引入的多余修改 PR

● 合并了可定制管线渲染队列的填充 PR PR2

● 修复了原生可定制管线ui阶段潜在crash问题 PR

● 修复了原生可定制管线render window野指针问题 PR

● 修复 Spine 动画缓存导致的崩溃问题 PR

编辑器

● 修复反复切换属性面板切换会导致编辑器内存上涨的问题(尤其是切换添加多个 Material 的 MeshRenderer 组件)

2024.8.22

如果没有发现严重问题,这个版本会做为正式版本发布。小游戏的包体大小,不论是新管线还是老管线都比 3.8.0 小(物理引擎要用 box2d wasm 版本)。

下载链接

Windows
Mac

更新说明

引擎

● 修复Spine 节点的opacity不生效问题 PR

● 修复Skeleton-Asset释放后,部分对象未释放问题 PR

● 优化:减少Skeleton-Asset解析json的次数 PR

● 修复 PhysicsContract.emit 函数在 Collider 没有 rigidbody 可能导致的错误 PR

● 修复原生平台在孩子数组更新时没有修改事件派发顺序的问题 PR

● 修复 Bullet 没有导出的问题 PR

● 修复了鼠标进入、离开窗口消息会被吞掉的问题 PR

● 修复只能有一个 touch listener 响应 TOUCH_END 或者 TOUCH_CANCEL 的问题 PR

● 修复原生平台上 performFunctionInCocosThread 的回调函数顺序错乱问题 PR

● 修复原生平台上 performFunctionInCocosThread 回调中修改节点的 position 导致节点的 worldPosition 在下一帧中不会被更新的问题 PR

● 修复原生平台上,在 Director.EVENT_AFTER_DRAW 中修改节点 position 导致节点的 worldPosition 在下一帧中不会被更新的问题 PR

● 修复原生平台Spine在setXXListener中,启用或禁用spine导致崩溃问题,修复PR

● 修复自定义管线原生平台geometry renderer 不显示问题 PR

● 压缩自定义管线effect.bin,加入版本控制 PR

● 修复自定义管线编辑器Reflection probe球形预览不显示的问题 PR

● 修复自定义管线多相机清除颜色不对的问题 PR

● 修复自定义管线viewport 四舍五入的问题 PR

● 修复自定义管线UI渲染时,渲染不相关Materiap Pass的问题 PR

● 修复自定义管线编辑器平面反射场景,天空盒显示错误的问题 PR

● 减小自定义管线包体

编辑器

● 修复不同平台的相同纹理压缩配置会重复压缩:3.8.2关于压缩纹理和自动图集结合后的原生问题,急求帮助 - Creator 3.x - Cocos中文社区

● 修复自动图集内小图被当做 texture 使用后,构建小图的 image 数据丢失: when a picture be set to sprite-frame, then use texture and sprite-frame resources will occur errors · Issue #17527 · cocos/cocos-engine · GitHub

● 修复独立构建 Bundle 时可能缺少资源依赖

● 修复设备第一次打开编辑器时有 layout 报错

● 修复预览页面打开时启动编辑有 settings 请求失败报错

● 修复命令行打开编辑器时主进程的错误显示可能没有完整调用栈信息

● 修复项目设置填写 import-map 路径清空后启动编辑器报错:Setting import-map.json to Import Map,after clear the path of it, it still occur error in the packing · Issue #17532 · cocos/cocos-engine · GitHub

● 修复 Mac 平台命令行构建控制台日志可能显示不完整

● 修复开启内置资源放置在全局目录的全局开关时模拟器预览加载报错

● 修复重复构建同个构建任务 md5 发生变化

● 修复引擎模块剔除勾选反选全选框后,自定义管线切换选项会变化

2024.8.1

下载链接

Windows
Mac

更新说明

引擎

新功能

● 添加 Tween.running getter,用于判断当前缓动是否正在执行。PR

● 添加 Tween.getRunningCount(target) 静态方法,用于获取目标对象关联的缓动个数。PR

● 为 Tween 模块添加内置 bezier、catmullRom 曲线 progress 支持,可通过调用 tweenProgress.bezier(c1, c2, p3) 创建自定义属性参数传递给 tween.to/by 。PR

● 添加 Tween.updateUntil 接口,用于添加不确定时长的动作到缓动系统中,通过回调函数返回 true 来终止当前动作,可以实现类似追踪动态物体的效果。PR

● 为原生平台添加 TextDecoder 添加 utf-16 编码支持。PR

● 新项目默认使用自定义管线,管线名为Builtin。旧项目升级时仍使用旧管线。

  • 添加管线选择页面。用户可以在Graphcis/图形选择自定义管线/原管线。

  • 新管线暂不支持debug-view-runtime-control.ts,打包时会被裁切。

  • 可以通过BuiltinPipelineSettings设置后处理等功能

● SafeArea支持设置是否对称,即上下(左右)是否对称。

Bug 修复

● 修复原生平台上,编译 release 包生成的脚本中有语法错误的问题,此问题为 3.8.3 中被引入

● 修复在 ts 文件中,使用 js 新标准的私有成员函数,比如 #foo() {},导致的编译报错问题,此问题为 3.8.3 中被引入

● 修复在原生平台上,spine 的 .wasm 和 .mem.bin 文件也被生成的问题

● 修复 Node.angle() 返回错误值的问题。

● 修复 Component.scheduleOnce() 回调时序错乱问题。

● 修复gles2后端out of range问题。PR

● 修复在节点 touch 回调中抛异常后,其它节点无法响应 touch 事件的问题。PR

● 修复在某些 Android 模拟器(比如:逍遥模拟器)上黑屏的问题。PR

● 修复 bullet body 的内存泄露。PR

● 修复淘宝平台不能正确清理缓存问题。

● 修复原生平台上调用 game.restart() 的时候如果有 promise 异常未处理而导致的崩溃问题。PR

● 修复updateAllDirtyRenderers在处理过程中添加新的dirtyRenderer时,会被删除的问题;PR

● 修复使用richtext时,会出现outline的警告的问题PR

● 更改字节平台的videoplayer显示方法(使用纹理的方式显示视频内容)PR

● 统一插屏的显示方式PR,参考文档多分辨率适配方案

● 修复设置ENABLE_MULTI_TOUCH为true或者false时,导致行为不一致的问题PR

● 修复web平台bmfont的colorDirty不生效的问题PR

● 修复SpriteRender Atlas渲染不正确的问题PR

● 修复atlas会多余创建的一个PR

● 修复在编辑器里切换button的类型,从颜色到精灵精灵,在切换到缩放,最后回到颜色,会变成黑色的问题PR

● 优化开发体验:避免在 ccAssert 函数中使用 debugger; 断点,改用 console.error。 PR

● 优化 2D 粒子更新 buffer 过程,减少不必要的乘法运算。PR

● 优化原生平台上文件读取逻辑,由同步读取改为多线程异步读取,解决加载资源卡顿问题。在 Android 中低端设备上,JSON 文件的反序列化性能提升 30 % 左右。

编辑器

优化

● 将内置资源 library 更换到全局,加快不同项目首次打开的启动速度,如有插件自行拼接了资源 library 地址可能会受影响,此功能可在偏好设置 -> 实验室 关闭,默认开启。(已知问题:开启后不支持原生引擎场景实验室功能)

● 新增资源模板的创建菜单入口

● 构建参数 sourceMap 支持 inline 参数,之前开启 sourceMap 默认是独立文件的形式,无法在原生的 chrome 调试中还原 ts 源码,遇到这个问题的开发者可以在原生平台上的 sourceMaps 选项里选择 inline 模式方便调试。

● 优化了 windows 菜单栏的显示间距

● 项目设置插屏预览效果将结合适配模式展示

● 自动图集预览支持显示合图尺寸

● 编辑器支持 zoom level

Bug 修复

● 修复构建界面的 CLEANUP_IMAGE_CACHE 配置可能无效

● 空工程构建面板参数中的Include Bundles去掉全选无效

● 修复自动图集文件夹嵌套时没有剔除子图集的小图

● 修复断网/内网情况下编辑器启动报错以及预览功能异常

● 修复构建初始场景丢失后点击构建错误提示不明显

● 修复在微信构建模板内填写开发数据域字段无效

● 修复原生平台的编译前后钩子函数参数不统一

2024.6.28

下载链接

Windows
Mac

更新说明

引擎

新功能

● Pool 支持设置 shrink threshold,确保 Pool 缩容后的大小不会小于 shrink threshold。

● 支持监听鼠标进入窗口的 mouse-enter 和鼠标离开窗口的 mouse-leave 事件。

● 新增 Vec2.toVec3() 接口

● 新增 Vec3.toVec2() 接口

● 新增 ResolutionPolicy.getContentStrategy()

● 新增 ContentStrategy.strategy

● Tween 中使用 sequence/parallel/then 级联子 Tween 的时候,子 Tween 允许使用不同 target。 issue

● 为 Tween 添加 reverse, id, union(fromId), timeScale, duration, pause, resume, pauseAllByTarget, resumeAllByTarget, update, start(time) 接口

● 如果 Tween 绑定的目标对象是 Node 类型,Tween 系统会根据 Node 的激活和销毁状态自动做暂停、恢复、停止的操作。PR1PR2

● Tween 支持缓动字符串、定制任意属性类型的 progress/easing 函数。 PR

● 淘宝小游戏平台,websocket支持多实例 PR

● 支持WebGPU,目前为实验版本。对于旧项目,需要操作:菜单->开发者->刷新所有的 Effect 资源。

Bug 修复

● 修复设置 event.preventSwallow 为 true 后,重叠区域会不响应触摸事件问题: issue

● 修复 Node 的一些 setter 函数在值没有变化时也发送修改事件的问题,详细帖子解释

● 修复小游戏平台(淘宝、支付宝)innerAudioContext.onCanPlay可能不存在导致声音无法播放的问题:issue

● 修复 NodeEventProcessor.dispatchEvent() 存在的嵌套问题: issue

● 修复 Tween color 时闪烁的问题

● 修复场景(.scene)和 prefab (.prefab) 文件中 _rot.x/y/z/w 数据可能存在 null 非法值的问题: issue

● 修复 Tween.to / .by 的 opt?: ITweenOption 中的 onStart/onUpdate/onComplete 回调函数的 target 强制为 object 导致在严格模式下报错的问题; issue

● 修复 Tween 过程中会把目标对象属性类型的问题;PR

● 修复 Tween.to/by 的 props 参数中自定义 progress, easing 的类型缺失问题;PR

● 修复 Tween 系统会自动给非 Node 类型的目标对象添加 uuid 属性的问题;PR

● 修复 Android 平台上 WebSocket 接收二进制数据导致的内存泄露问题;PR

● 修复 Android x86 模拟器上,因为 gfx 相关的结构体被编译器自动插入 padding 字节导致的 hash 计算异常,进而导致 _pool[desc] 重复创建对象引发的内存泄露问题;PR

● 修复原生平台上,修改 CacheMode(NONE)模式的 label 文本,导致的内存泄露问题;PR

● 修复 Button 回调函数中抛异常,在 window.onerror/jsb.onError 捕获异常后弹出的 UI 无法响应 touch/mouse 事件的问题;PR

● 修复Ipad上旋转屏幕后,游戏窗口大小显示错误问题 PR

● 修复 iOS 设备静音键启用后,声音依然会播放问题 PR

● 修复 iOS 手机通话接听,并且从后台挂断电话,再把游戏切到前台;游戏声音不恢复问题 PR

● 修复cache-manager的clearLRU在特定条件下,cleaning不会被重置的问题 PR

● 修复enable_multi_touch设置不同时,出现的行为不一致PR

● 修复 web 骨骼动画关节 uniform 未取整引起的 shader 编译错误问题。PR

● 修复多光源原生平台out of range问题。PR

编辑器

新功能

  • ui-drag-item: drag-area 判断一个 drag-item 是否可以放置,只判断 drag-item 上的 types 属性,不会再从 extens 和 additional 里判断其他type。如果之前的拖拽配置是: 需要改成 具体可以在“编辑器-开发-ui组件” 查看文档

Bug 修复

● 升级小米打包工具,支持 node 18 以上版本编译小米

● 添加自动处理构建模板文件 MD5 选项开关的实验室功能选项,允许用户关闭

● 修复自动替换文件依赖的 MD5 路径时可能将 html 内的其他标签属性字段替换

● 修复 HarmonyOS平台构建Bundle报错

● 修复 assets 面板上子资源的显示名称问题

● 修复 Bundle 资源预览列表过长时底部显示不全

● 修复自定义脚本模板的 URL 参数失效以及完善创建脚本文件名的校验流程优化修复构建面板场景列表选择以及 missing 状态下的显示与交互

● 修复华为 AGC 平台二次新建构建任务没有更新配置

● 修复动画编辑模式下,选择动画面板中节点列表的节点 gizmo 图标不显示的问题

● 修复项目设置中骨骼贴图布局添加多个骨骼,缺少滚动条

● 修复重新选中地形节点后,无法刷绘选中的纹理层,需要切换纹理层才能刷绘

● 修复雕塑的地形,进入prefab 编辑返回场景后,地形编辑信息丢失

● 修复鼠标放置在地形上移动,光标大圆点出现截断

● 修复部分格式图片构建时纹理压缩失败

15赞

box2d 的wasm 版本,PolygonCollider2D.body.impl.impl.m_fixtureList 。获取不到夹具的。 去掉wasm就正常了。估计还有其他问题。而且那个流体也去掉了???

1赞

以后会每个月一个版本吗,还是每3个月

1赞

争取每两个月发一个正式版本,在发正式版本前会发测试版本。

3赞

3.8.4被吃了 :joy:

3.8.4 会在 3.8.3 的基础上加入 HarmonyOS NEXT 的适配,不做过多改动。

1赞

走起,试试

开启了WEBGPU:

这是为啥

试了一下后效在编辑器上的预览一顿操作终于不会黑屏或者失效了 :call_me_hand: :call_me_hand: :call_me_hand:

求一个 3.8.4 的下载链接

还没有发布。

webgpu在新管线下会有些问题,目前会优先修复新管线的问题,webgpu的问题优先级会靠后

1赞

麻烦看看这个PR.如果property的 userdata废弃不推荐在未来使用,也请麻烦再PR中明确告知。我觉得官方应该在社区有PR之后 优先 处理社区的PR。不一定需要合并,但是需要有个反馈。明确知道这个是不是官方支持的(以便提交PR的人知道未来应该如何做)。但我看大多数非BUG内的社区PR,都不太搭理(无任何反馈)。但官方都鼓励社区进行PR提交。这似乎是 矛盾 的。毕竟很多PR都很小,影响范围也很有限。

2赞

我会让人尽快看一下。还是鼓励提交的,应该是忘记了。我 assign 完后也忘记跟进了,不好意思。

2赞

另外得刷新下effect,image

box2d 的wasm 版本,PolygonCollider2D.body.impl.impl.m_fixtureList 。获取不到夹具,这个问题怎么解决

1赞

github上的issue 剩下的是放到其它版本改了吗

你指的是 m_fixtureList 是空吗?

这个版本的开发周期还没有结束。