我们目前用过的3.4.0,3.4.1一直有这个问题,好像和删除资源或脚本出错时保存预制体有关
这个是脚本有调整过属性才会这样提示
这个脚本里的属性没有做过任何调整
再说即便调整了也不应该展示完全不存在的属性啊
这个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,实测
3.5.1预制体相关的改动并不多,方便的话,出错的时候把错误和相关资源上传一下,我这边会立刻定位问题。
好的,预制体已经可以保存设置了
现在只解决了一小部分问题,还希望引擎组能早点找到并修复这个BUG
已经重做,想要复现,只需要在更改预制体后不断的按ctrl z,特别是内嵌预制体。分分钟出问题
现在还有一个情况,子预制件里的某个节点有widget组件,在父预制件里面直接修改坐标是不生效的,必须手动修改(复制都不行)widget的值来调整坐标才能保存生效;
经过git变动发现,直接修改坐标值,prefab里面的坐标value变了,但是节点的widget组件没有被加到"propertyOverrides",这个值的变动没有被记录,关闭预制件再次打开就还原了;
直接修改widget的值,widget才会被正确添加到"propertyOverrides"中去;
目前使用的是3.5.1;不知道这是bug还是机制;
就算是机制的话也建议修改一下,编辑器里面的值都变了,保存后不生效,这也太奇怪了