assetManager.getBundle(bn).loadDir等待时间太长

但如果指定如只加载cc.Prefab或者不预加载,进入跟网页一样依次显示出来也效果不好,有不预加载让他一帧内都卡出来的接口吗

或者有其他方案吗

大佬们预加载资源都用的什么方案呢 :couplekiss_woman_woman:

这。。。你不预加载,又想一帧内加载出来,有点不太可行吧。

你这要求有点过分了,不预加载,需要时就要立即显示。
你当你量子通讯呢?

不是 是卡在一帧可能等几秒马上出现完整的,跟逐步显示出来是有区别的

老版的cocos-js是能卡1帧出现,新版找了一圈发现只能预加载,如果预加载都是按文件夹预加载所有资源吗,还是区分只加载如spriteframe 还是 跳过了某些不需要预加载的资源名字如虽然在bundle但不经常用到但挺大

这样子的话,好像和你,加载资源完成后才显示,是一样的咯?

预加载有3个API,你根据参数格式用就可以了,可以根据类型加载。

打了图集真机测试似乎快了大概5s左右,暂就先loadDir所有资源了

    public getUserAssetUrls(bundle: AssetManager.Bundle) {
    const pathArr: string[] = [];
    if (!bundle) return pathArr;
    const array = bundle.getDirWithPath('/', Prefab) as { uuid: string, path: string, ctor: Function }[];
    for (let index = 0; index < array.length; index++) {
        pathArr.push(array[index].path)
    }
    return pathArr
}

先把prefab都加载了吧.有场景加载场景.

感谢回复,这个我最初的方案,找到bundle内的资源或者某个类型资源再bundle.load但这个没loadDir快,后来直接改loadDir了 :joy: