构建时已经删除的sprite却报错,uuid在scene json中还能搜到

  • Creator 版本: 3.8.3

  • 目标平台: 小游戏开发工具

  • 重现方式:

  • 首个报错: [Assets] The SpriteFrame used by component “cc.Sprite” in scene “home” is missing. Detailed information:
    Node path: “confirm_place/bg”
    Asset url: “db://assets/scene/home”
    Missing uuid: “67857cdc-6716-4298-88a3-c307f15b3ed2@f9941”
    [Assets] The SpriteFrame used by component “cc.Sprite” in scene “home” is missing. Detailed information:
    Node path: “confirm_place/bg”
    Asset url: “db://assets/scene/home”
    Missing uuid: “67857cdc-6716-4298-88a3-c307f15b3ed2@f9941”

at Object.encode (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\node_modules@base\electron-worker\node_modules\v-stacks\index.js:14:17)
at Logger._logHandler (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\node_modules@base\electron-worker\static\script.ccc:1:531)
at Logger.record (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\node_modules@base\electron-logger\lib\renderer.ccc:1:458)
at Object.warn (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\node_modules@base\electron-logger\lib\renderer.ccc:1:1260)
at Object.warn (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\builtin\asset-db\dist\worker\console.ccc:1:1510)
at NewConsole.warn (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\builtin\builder\dist\worker\console.ccc:1:2337)
at MissingObjectReporter.doReport (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\builtin\engine\dist\editor-extends\missing-reporter\missing-object-reporter.ccc:6:68)

在home.scene中可以搜到"_spriteFrame": {
uuid”: “67857cdc-6716-4298-88a3-c307f15b3ed2@f9941”,
expectedType”: “cc.SpriteFrame”
},
当我再放一个同名的图片到文件夹,再删除后 构建报错的数量翻倍了。。。

  • 之前哪个版本是正常的:
  • 手机型号:
  • 手机浏览器:
  • 编辑器操作系统:
  • 重现概率:

这肯定不是引擎问题啊,设置尽量设置自动更新资源

您好,【自动更新资源】 在哪里设置呀, 【偏好设置】-【资源数据库】-【自动刷新资源】这个选项我一直开着的;我不明白为啥这个节点我已经删掉了,在构建微信端还是报错warning。会不会是home.scene的相关对象它没删干净?我自己手动删除uuid对应的对象,它又会报错,整个scene都不能用,只能撤回到上一步

删除一下缓存

好像没用。它没自动删掉home.scene里面多余的对象

在home场景中被Sprite组件使用的SpriteFrame消失了,但是这个Sprite组件还存在,所以那个uuid也存在。要给那个Sprite组件设置新的精灵帧

这种情况的编辑器会报错,会提示是哪个组件。

报错: The SpriteFrame used by component “cc.Sprite” in scene “home” is missing. Detailed information:

Node path: “confirm_place/bg”

Asset url: “db://assets/scene/home”

Missing uuid: “67857cdc-6716-4298-88a3-c307f15b3ed2@f9941”;现在报错是confirm_place/bg,但是已经我把节点 confirm_place/bg 甚至confirm_place也给删掉了,但是在home.scene中搜到confirm_place,我把节点恢复,name改成confirm_place1,在home.scene能同时搜到confirm_place和confirm_place1,上面的uuid也能搜到,我把别的节点confirm_buy删掉,在home.scene就搜不到confirm_buy;我不能理解为啥删不干净

正常情况下没有复现

没复现,就这个节点有问题,我有空再看看吧,就是warning看着闹心,还好不是error

你可以恢复之后再托上去一下spriteFrame,然后再删除节点并保存

嗯嗯谢谢 我试试

猜到大概是为啥了,scene文件里面本来就有两个confirm_place,应该是我以前删过的,一个旧的parent属性是null,另一个parent属性是“id”:2 ,在层级管理器可以看到,旧的confirm_place因为某些原因没有删干净,可能因为我在别的节点绑定了脚本,这个脚本指定了property指向旧的confirm_place(可能也同时指向了新的confirm_place,很奇怪,两个confirm_place的id是一样的),我把脚本里的property删掉了,旧的confirm_place就消失了。。

我们也遇到了这个问题,版本号3.8.4

你到scene文件里搜一下报错的uuid看看