【bug】2.0.8场景依赖资源丢失,则无法加载场景

在2.0.8上发现, 某个资源的依赖资源丢失时,则这个资源就无法加载了。
例如: 预置物上的图片丢了,则这个预置物无法加载(此条为自己理解有误,可以忽略
例如:场景中的任何图片或脚本丢了,则场景无法加载。

想问下,这个改动是故意设定的吗,感觉这么改,太影响项目了,尤其是热更项目,
假设你在改动某个游戏时,不小心把其他游戏用到的一张图片删了,那其他游戏就gg了。

在1.9上,依赖资源丢失了,只会打1条log,主资源还是会继续加载的,感觉这样才是合理的。

感觉Creator的容错力下降了,该版本下的导入新项目,项目的一个预制对应的语法格式错了,直接就提示脚本丢失

今天测试了下,发现自己的理解有误,特此更正。

  1. 预置物上资源丢失还是可以加载预置物的。(自己拿string拼接object导致的错误,误认为是引擎错误)
    但引擎还是做了点改动,如果预置物上图片丢失
    cc.loader.loadRes回调中err信息,在1.9 为null, 而2.0.8不为null。

2 场景中资源丢失,确实会无法加载场景
复现步骤,

  1. 在场景中添加1张图–加载场景正常
  2. 删掉这张图,重新刷新浏览器,发现场景无法加载
  3. 如果重新打开一下场景,这个时候又可以加载场景了

测试环境 win10
此问题在2.0.8 上100%重现,而且实测会影响真机运行, 在1.9上就不会

这是我们的设定,我们不觉得之前的行为是合理的。因为引擎根本不知道丢失的资源,是否重要?万一是主角的资源丢失了还怎么玩?
所以我们在新版本中,会返回 err,将决策权交给用户,用户可以进行重新加载,或者将错误上报给服务器。

  1. 预置物上依赖资源丢失。
    .在之前的版本不会返回error,但是会有一条warning日志,我觉得这个其实已经很明确了,该怎么处理应该交给用户。
    .现在的改动也可以接受,但返回的error信息类型不明确,应该告知是依赖资源error还是主体资源error,交给用户处理。

  2. 关于场景资源丢失,无法加载的问题,请确认下是否为bug。

抱歉目前用户无法处理,只能重新加载资源。因为一旦有一个资源加载失败,loader 就不会返回任何结果。我们正在对 loader 进行重构,重构后会调整错误处理机制。

不是 bug,因为场景资源已经丢失了,这个时候建议用户重新加载。重新加载不会影响加载时间,因为已经加载的资源会在缓存中读取,不需要重新下载。