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

做了一个单元测试,在3.8以上物理有个明显的变化,碰撞后及时销毁或者隐藏会报错,甚至执行到父节点添加都会报错。3.8以下的项目升级上来影响比较大,虽然通过延时一帧可以解决这个问题,但是可能会导致一些其他的逻辑错误或者干扰,官方是否可以解决这个问题。保持和3.8以下的版本兼容。谢谢


demo:
Hello384_1.zip (756.9 KB)

3.8 之前的版本没有问题么?

没有的。公司的项目从3.7.4升级到3.8.3,2个游戏升级均有遇到

是的,我也遇到啦。解决方法就是在下一帧执行

这在3.7.4的时候,公司两个项目以前是不会的,我感觉用下一帧处理的时候,在一些复杂的项目逻辑处理的时候,无法得心应手。出现一些偶现的谜一样的BUG。 :face_with_head_bandage: unity没有这个情况

能帮忙看看吗 这个是啥情况 :laughing:

这是工程

UIOpacity.zip (13.0 KB)

3.8.1 里面有这个变更,不确定是不是为了实现这个变更,改动了什么

仅提供一个方向,没遇到过~

试试可以解决: image ,如果是销毁的话,里面不要用removeFromParent,改用destroy.
另外onEnabled不需要手动调用,可以去掉。

如果不销毁,循环利用的话,这样:
UIOpacity.zip (14.5 KB)

1赞

有可能,在 3.8.x 有 revert 过 3.7.x 的一个改动。

我们会定位一下。

1赞

我在看哈,最近比较忙,晚点哈

:sweat_smile: demo是随便搞得 没在意这些, 核心问题是 opacity 你么发现如果不销毁 再点击打开是不显示的吗

你原来调用close的时候,触发了removeFromParent是销毁了。只是内存没有释放。如果他存在,又何须在addChild一遍,都已经add过了

大哥 我removeFromParent怎么就销毁了呢…只是从父节点删除了,要显示的时候再添加上去而已
我并不是要销毁他- - 你把我原本代码的 op.opacity = 0 注释掉 运行对比一下就知道我说的啥意思了.

:hugs:好的

憋了5个月 有什么大招嘛

为什么动态修改spine的sockets不生效啊?
我在编辑器里设置了5个空的节点
在代码里动态修改对应的node
test.sockets[1].target = gold.node
test.setAnimation(0,“play”,false)
img_v3_02fi_04e19f3e-3d73-4f9c-a4ee-b29f121cb23g

Fix the issue that can not destroy Node in contract listener call back in Box2D by minggo · Pull Request #17701 · cocos/cocos-engine · GitHub 修复了。原因也在 PR 里有说明。

1赞

吐槽一下,又没几个老外看搞什么英文页面,搂~~

3赞

个人建议,直接双语说明 :rofl: :rofl:

这个要到3.8.5生效吗?仔细看了,在开发的时候会有警告。

,这个警告是否没有必要提示。