Creator3.7.2 Hierarchy里的所有Prefab莫名其妙被删问题

  • Creator 版本:3.7.2

  • 目标平台:微信小游戏

  • 重现方式:未知

  • 首个报错:一开始只有一个小问题就是我的一个脚本的拖拽引用,一直总是莫名其妙的丢失。哪怕我只是build & run,build & run,不对任何内容做任何操作,还是会发生引用丢失,所以我每次都是重新手动再次拖拽。
    直到有一次我只是调整了一个物理摩擦力的数值,突然出现了整个场景里的Prefab全部莫名被删(注意被删前后对比图,只有绿色的Prefab消失了),然后我就尝试Ctrl + Z还原,但是Ctrl + Z记录的却是我几个小时以前的一个操作(在search bar里输入playerB从而寻找playerB),然后从git里观察记录scene的文本,发现的确是整个scene的东西都被删掉了,但因为我半天的工作就是在调整整个scene,所以也没有办法还原,只好放弃整个git里的东西,重做。

被删前:

莫名其妙被删后:

git变化:

抱歉给你添麻烦了。1. 请问在这个过程中有报错吗?2. 是只有这个项目这样吗?3. 你有安装什么构建插件吗? 4. 你能否提供一个可重现的 demo?我们复现一下构建或者其它操作

哪怕我只是build & run,build & run,不对任何内容做任何操作,还是会发生引用丢失

可以发一份出现这种情况的构建日志看看吗?

抱歉给你带来麻烦,预制体节点全部丢失的问题,是第一次遇到;不知道你能否提供项目或demo让我们进行排查。
你可以开启场景缓存功能,这样当你发现数据丢失时(此时请暂停编辑,避免缓存被覆盖),在项目目录/temp\scene\cache中看下场景缓存文件,如果有的话,可以重启按提示还原或者手动覆盖文件还原。

  1. 只有一个描述中的偶尔会自动丢失引用报错
  2. 这是我第一次使用Cocos,第一个项目刚开始两天发生了这种情况
  3. 没有安装任何插件
  4. 无法复现也没有demo,发生之后我并没有备份所有内容,而是直接把上传的截图里所显示的game.scene文件彻底discard从而还原为上一次commit了

日志被后来的build覆盖了,目前我全部还原之后重做,就没有再出现这个情况了,如果以后再发生我再次跟进这个帖子;

1赞

现在我这里又出现了那个脚本引用自动丢失的问题,
从始至终只在添加新的内容,都没有触碰挂着那个脚本的node;
请问大家需要什么日志吗?

把这个场景,在资源面板,通过右键导出成资源包,发给我看看。

具体要怎么操作,3.7.2版本,所有的面板上都没有任何导出&export相关的按钮啊

image 选中场景资源,然后右键,有一个导出资源包(export asset package)选项

MissingRefScene.zip (2.2 MB)
该场景

1赞

image
MainCamera的这个组件,原本引用的节点是不是plane_with_hole预制体?初步怀疑是,场景删除了plane_with_hole这个节点,这个数据自然就被清理掉了。

起初引用的是plane_with_hole的节点,但是后面又是全部重新拖拽为HoleController新节点的;
我一直出现的问题就是无限地丢失HoleController的引用;
删除旧的不再引用的节点,还能影响当前已拖拽引用的话,这属于很严重的问题吧。

了解,丢失的问题和你截图的数据被删掉,是两个问题。
你截图的数据被清理,是因为引用节点变了,所以老数据没了。
而新引用的HoleController没有正常保存,所以场景数据中一直没有这个数据。我看看为什么没保存。

我用你给的场景在3.7.2版本上测试,MainCamera的targetTo Follow是可以设置为HoleController的。保存重新打开也是有这个值的。
你说的无限丢失HoleController的引用,是怎么出现的呢?按理说设置完后,能正常保存,是不会丢的。

我自己刚拖完然后运行也是正常的,也能保存;
但是在项目里继续做别的,然后不定时再次run的时候就发现又丢了。

再次更新:
终于让我找到了一个可以必现的方法:
任意修改一个在Scene里的prefab的node的数据,然后点击Update prefab asset,
整个Scene的所有挂在任意prefab上的脚本的引用就会全部消失。
weirdPrefab

1赞

prefabBugScene.zip (2.2 MB)
这是最新的Scene Package
按照我上条所说的可以必现

感谢这么晚还上来回复!

感谢你的反馈,按照这个操作方式确实复现了,这是由于在保存预支体时,对外部节点、组件的引用需要清理(这些数据不会保存到预制体内),清理后没有对数据进行还原造成的。我们会在3.8修复这个问题,在此期间,对预制体进行更新时,烦请手动更新下数据,抱歉给你带来了困扰。