想要让整个工程打包成一个bundle让其他工程使用,由于动态加载要求资源必须在resources内,造成没有办法打包为一个bundle,必须要去掉原工程的resources目录 ,更换名字或者更换路径,所有资源都要静态绑定到UI组件,改动还有点大,而且也不方便,有没有办法可以导出一个bundle并且还能使用动态加载呢?
你自定义一个先loadbundle再load资源的函数全局替换cc.resources.load就行了,编辑器里拖拽所有文件到一个目录下就,设置bundle,30秒完美搞定,比如这样
function loadRes(path, type, callback) {
let bundle_name = ‘这个可以通过path解析或者配置’;
cc.assetManager.loadBundle(bundle_name, (error, bundle) => {
if (error != undefined) {
cc.warn(‘load bundle failed:’, error, bundle_name);
callback && callback(error);
return;
}
bundle.load(path, type, (error, asset) => {
if (error != undefined) {
cc.warn('load res failed from bundle:', error, bundle_name, path);
callback && callback(error);
return;
}
callback && callback(asset);
})
})
}
完美解决,谢谢!修改的代价很小。
代码最后一行替换一下:callback && callback(error,asset);