fail to load resources: 在assets里换了图片文件,运行显示fail to load resources

如题,我换皮了一些素材,直接拖入assets然后删除老文件,新文件命名为老文件同名,
此刻运行就显示我一直一个json文件找不到
我没有备份版本,这种情况如何解决
之前也多次遇到过这种类似问题,有时候重启大约7-8次随机自己不再报错了
可是不能从根本上去理解这个机制

应该先改名再拖进去覆盖旧资源,否则会生成新的uuid,预制体里面记录的是uuid,所以会报错

我明白应该让它们合并资源,但是在目前的现状里,我该怎么样去解决我碰到的这个问题

有备份还原,没备份就重新绑定,没别的办法

说得对, 只能重拖

机制很简单, 参考元数据,.meta后缀名也是这个意思。

举个例子,一张png图片,那引擎可能需要考虑它的wrapMode,filterMode等设置,最理想的情况当然是把信息塞到这个.png里面,但是png编码格式设计的目标可不是特地为了你一个引擎,你说你要强行塞进去,那png确实可以,但其他格式比如mp3啥的可能不行。这个时候退而求其次,引擎实现上,搞个同名文件加.meta代表元信息,其中有一项uuid用来代表这个资产(Asset),再来个AssetDB直接管理这些资产,外部全是通过uuid,还有个好处就是资产随便你怎么移,不会影响到其他文件如prefab,我其他地方记的是你的uuid,你实际在哪个目录压根不关心,由AssetDB来处理,完美。代价就是有个小限制,原文件和它对应的meta以及其中的uuid必须由开发者保证同步。

不是,怎么重新绑定??

哥,你把图片拖到你的预制体对应的节点里面再保存就重新绑定了

可能有快捷的方法,但是我不知道,遇到这种问题都是费时间去重新绑定,所以备份很重要

我没有做预制体prefab,然后那块我没有去绑定图片,我用的是bundle通过代码去加载的bundle。我是在bundle文件夹里删了图片,然后就运行报错了

看你这报错肯定是资源引用丢失导致的,所以,可以看看场景或者预制,或者动画资源对你那些图片的引用

懂了,就只能逐个去重新绑定了