在编辑器设置属性动态生成预制体,在编辑器的时候不去运行,会报错
麻烦官方人员看一下 !
报错截图:

引擎版本:3.8.0
这个上面的是demo的代码 麻烦官方人员指导下
这个是demo
收到,我看一下什么问题
感谢大哥 这回复速度 我感觉是和嵌套结构体 有关系 一开始生成是不报错的 但凡在代码里加一句打印,让编辑器重新刷新一下 就开始报错了 而且很容易卡死 要重启编辑器
我知道是预制体的数据异常了,但是问题是你把我的预制体删掉 再按照我的结构去创建预制体,也就是复刻一下我的项目 预制体的数据就一定会发生异常 我刚才试了下 不去嵌套生成预制体 就不会有问题 如果一旦在编辑器中嵌套生成预制体就有问题了呢
ok,我再看看
怎么样了 兄弟 有进展吗
经过排查,修改属性后,动态添加了预制体,修改脚本会导致这个问题出现。
如何避免:修改完属性后,创建了新的预制体,此时保存整个预制体再重新打开,这个时候再去修改脚本就不会有这个问题。
核心的问题就是,不要在添加完新的预制体后,做修改脚本的操作。要修改脚本,需要先保存整个预制体,再重新打开才不会有问题。
这个问题会在3.8.1上修复,感谢你的反馈
那我再麻烦您一下 ,这个问题呢 我最早是发生在3.7.3 的 , 就是在编辑器中生成预制体 ,会有uuid 重复的问题, 听说在3.8.0 解决了我才升级的 ,那么在3.7.3 的版本上如何解决 uuid 重复的问题呢 
// @ts-ignore
const prefabInfo = node._prefab;
if (prefabInfo) {
const prefabInstance = new Prefab._utils.PrefabInstance();
prefabInstance.fileId = node.uuid;
prefabInfo.instance = prefabInstance;
} 我看了论坛有官方人员调用了这个方法 我也调用了 但没有用 还是一样的报错呢
uuid重复的问题确实是在3.8解决了,和你现在遇到的不是一个问题。
在3.7.3用你下面说的代码应该是可以解决uuid重复的问题的,如果不行的话,把demo发我。你现在反馈3.8遇到的问题,无法用这个代码解决,只能按照我说的绕过方式先避免。
绕过这个 没太懂怎么弄 我刚试了下还是一样的 关闭后再打开 然后改代码 可能操作上和你有区别吧 我已经改成用代码去生成了 3.7.3 的demo 我搞好发出来哈
绕过的方式:
- 编辑预制体A时,修改了属性,触发动态添加预制体
- 保存预制体A,关闭预制体,再打开预制体A
只要你触发了1,要先执行一遍2,否则改完脚本回到编辑器就会出现你遇到的问题。
这个原因是,添加预制体后,编辑器部分数据没更新,此时修改脚本的话,会重新加载当前的场景。没更新的数据会导致出现你反馈的错误。操作2,就是通过重新打开预制体,保证数据的更新。
