严重Bug!!! Creator 嵌套预制体编辑的属性无法保存

我们目前用过的3.4.0,3.4.1一直有这个问题,好像和删除资源或脚本出错时保存预制体有关

在出错的预制体上,脚本的属性也会错误属性错误
脚本里只有继承来的2个属性

这个是脚本有调整过属性才会这样提示

这个脚本里的属性没有做过任何调整

再说即便调整了也不应该展示完全不存在的属性啊 :sweat_smile:

这个UserView的预制体是有问题的,确实是root的数据不对,建议修复下该预制体再继续使用。
嵌套预制体目前在部分情况下确实无法正常保存修改的数据:请教升到 3.4.2 版本后,场景上的预制件在序列化设定值都无法有作用
3.5.1有修复部分问题,建议你们升级一下

目前的机制确实是脚本属性有改动过,会有一个提示你reset的功能,如果你确认脚本属性没有调整,麻烦把相关的文件上传一下,我们看看是什么问题导致这个属性显示出来

有么有相关的修复工具可以使用吗?从几万行的文件里进行修复确实很难啊

这个可能比较困难,因为牵扯到的文件很多

这个root,一般都是最外层,你打开prefab文件,从根节点上找_prefab字段,它的值表示prefab文件里的位置,你用vscode,把prefab当作json打开,然后outline中可以点击对应的位置跳到相应的地方

抱歉目前没有工具修复这个问题,因为这个root为什么会为空还需要定位一下。

不需要所有文件,只需要这个脚本异常的节点所在的资源文件(prefab或scene)就好

了解,我这边先试下

3.5.1的预制体出错率远远高于3.5.0,实测

没有工具还是很难定位的,下面是真正的预制体
User.rar (6.7 KB)
从132个元素里边找可太难了,这还是比较小的预制体,我们总的prefab里元素能到2000+ :scream:

3.5.1预制体相关的改动并不多,方便的话,出错的时候把错误和相关资源上传一下,我这边会立刻定位问题。


UserView打开,然后从头开始看,第一个cc.Node的节点是根节点,上面有个_prefab字段,指向了74,在outline里点击74,就是对应的root所在的地方了。

好的,预制体已经可以保存设置了

现在只解决了一小部分问题,还希望引擎组能早点找到并修复这个BUG

已经重做,想要复现,只需要在更改预制体后不断的按ctrl z,特别是内嵌预制体。分分钟出问题

现在还有一个情况,子预制件里的某个节点有widget组件,在父预制件里面直接修改坐标是不生效的,必须手动修改(复制都不行)widget的值来调整坐标才能保存生效;
经过git变动发现,直接修改坐标值,prefab里面的坐标value变了,但是节点的widget组件没有被加到"propertyOverrides",这个值的变动没有被记录,关闭预制件再次打开就还原了;
直接修改widget的值,widget才会被正确添加到"propertyOverrides"中去;
目前使用的是3.5.1;不知道这是bug还是机制;
就算是机制的话也建议修改一下,编辑器里面的值都变了,保存后不生效,这也太奇怪了