【已正式发布】CocosCreator 3.8.7 社区版本公测帖

复议!2x版本那个鼠标放入显示节点框很好用,3x没有这个

编辑器中代码编译后会执行组件脚本的生命周期函数,已提issue。
所有继承内置组件的脚本在编辑器中(代码编译后)都会执行运行时代码(生命周期函数) · Issue #18769 · cocos/cocos-engine

忘记是哪个版本开始了,大概3.x就是这样,@executeInEditMode 这种,继承是有传染性的,与2.x的处理不同

2赞

拷贝复制prefab到另一个文件夹,原prefab和副本都报错,报错信息如下

啥时候可以加运行窗口和预览窗口分离?不用每次要查看运行状况都要点击暂定才能看

能不能优化一个小操作,我直接拖bmf字体过去的时候,直接打Use System Font的勾自动去掉.把bmf换上.

2赞

应该是同样的问题 ui-file 有extensions属性时会报错


是否带有 Missing script 的组件,如果有请删除后再报错试一下

你直接node.children.sort应该也可以满足你的需求

以前的版本是自动去掉的 后面更新了就不会自动去掉不知道为什么

目前还真就是这么干的,不过用到了内部保护的属性,如果可以的话还是希望官方提供接口,而不是自己扩展

目前对于在编辑器下动态修改预制体上的相关内容(比如组件属性、名字)都会无法成功序列化的问题这个版本会修复吗?我们现在是专门创建一个场景用于关卡编辑,关卡的内容都是提前弄好的预制体,目前在摆关卡的时候我想要通过代码动态的去修改内容里的预制体名字或者预制体上的组件对应的属性,修改的时候在属性面板上面看是正常的而实际上这个改动并没有触发序列化的操作我保存后刷新编辑器也好重新打开也好他又恢复默认值了。这个问题我在3.8.5也有我试了下最新的3.8.7也有,下面我给了个demo,在scene场景中把res下的testComp预制体拖到edit/test节点下面会自动处理testComp预制体中的组件TestComp中的testId当把预制体拖进去后testId确实改动了,但是将场景保存后重新刷新编辑器或者重新打开这个场景时会发现又变回0了,说明根本没有序列化成功。3.8.7Test.rar (21.1 KB)

出现这种问题的预制体一般都是在编辑器上面看不到那些多余的节点的,只能自己想办法在预制体源文件删除对应的节点。但是你们预制体源文件是用数值下标作为id的,找起来十分麻烦,不过这个问题也不是很常见,目前还不知道是怎么触发的,不过肯定跟预制体嵌套预制体后修改了被嵌套的预制体有关。

现在是做了剔除冗余数据的,但是有一种情况是有 MissingScript 组件,他里面缓存了数据,需要你们手动删除 MissingScript 组件,然后保存 Prefab,就可以剔除冗余数据

可以发一下原 Prefab 给我们看一下

我之前遇到的那种是没用MissingScript的,整个预制体是可以正常跑的。多余的节点也是看不出来的。知道我删除了多余节点里面引用的一个资源,运行报错后才发现在预制体文件里面多了很多多余的节点。研究了一下后发现是预制体嵌套预制体然后修改了被嵌套的预制体后,不知道为什么残留下来了一些节点。这些节点不会在编辑器上面显示,不会影响预制体加载,但是这些节点引用的资源应该是会在加载预制体的时候被当成依赖资源加载进来。

希望下次如果遇到,可以保留一下预制体,等有空的时候发给我们,我们会进行跟进排查修复

其实能不能做做一个优化。例如在一个预制体里面有一个模型。然后我删除了这模型资产,然后在预制只是把这个资产置空,而不是把这个模型Node 都MISS 掉,方便直接替换资产。

启动slide时。设置range没法拖动。但是单独设置就正常?忘记优化还是漏了?

可能要考虑蛮多情况的,目前可能不会那么快去优化