想要直接通过cc.assetManager.loadAny 用UUID来拉取资源,但是打web包后这个方法就用不了了。
cc.resources.load只对resources里的资源有效。在正式环境下改如何优雅的获取到资源所属的bundle呢?
如果前提是所有bundle都加载了, 可以用const map = cc.assetManger.bundles._map
for(let bundle in map){
//如果用uuid 判断
if(map[bundle]._config.assetInfos._map[uuid]) return bundle
//如果用路径
if(map[bundle].paths._map[‘路径’]) return bundle
}
那就是遍历bundle的getAssetInfo了把
对的, 我想的方法只有这个
但是某些情况下cc.assetManager.loadAny 直接拉取UUID有效,但有的时候加载路径会多一个undefind,有的时候直接无效了,这个是什么原理呢?
不太明白你所谓的加载路径多一个undefine
应该是cc 构建后那份资源映射的json有问题导致, 或者是你那资源根本没构建出来
cc.resources.load 能加载出来,包里有对应的文件
这个说不通