cocoscreator一次性加载resources全部的资源

1:一次性加载全部资源,这样就不用每次都异步load了

cc.resources.loadDir("./", (err, assets : cc.Asset[])=>{

    let list = cc.resources.getDirWithPath("./")
    let uuidDict = {}

    for(let item of list) {
        uuidDict[item.uuid] = item
    }

    let resList = {}
    
    for(let asset of assets) {
        let path = uuidDict[asset["_uuid"]].path
        if(!resList[path]) {
            resList[path] = []
        }
        resList[path].push(asset)
    }
    this.resList = resList

})

2:根据路径获取对应的资源

getRes(path, type) {
    let list = this.resList[path]

    if(!list) {
        return null
    }

    for(let item of list) {
        if(item instanceof(type)) {
            return item
        }
    }

    return null
}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Cocos Creator 3.7 版本及以上,可以通过 `cc.resources` 模块来加载资源,并使用 `cc.ProgressBar` 组件来创建一个资源加载进度条。具体的实现步骤如下: 1. 创建一个进度条节点 在场景编辑器中创建一个节点,并添加 `cc.ProgressBar` 组件。设置进度条的样式、位置、大小等属性。 2. 加载资源时更新进度条 使用 `cc.resources` 模块加载资源时,可以使用 `onProgress` 方法监听进度,根据已经加载资源数和总资源数来计算加载进度,并将进度条的百分比设置为相应的值。 ``` // 加载资源的过程中 cc.resources.loadDir("resources", { type: 'png' }, (completedCount, totalCount, item) => { let percent = completedCount / totalCount; progressBar.progress = percent; // 设置进度条的百分比 }, (err, assets) => { // 加载完成后的回调 }); ``` 其中,`loadDir` 方法用于加载资源目录中的所有资源,`type` 表示要加载资源类型,`completedCount` 表示已经加载资源数,`totalCount` 表示总资源数,`item` 表示当前加载资源信息。`percent` 表示已经加载资源数占总资源数的百分比,`progress` 是 `cc.ProgressBar` 组件的进度属性,将其设置为相应的值即可更新进度条。 3. 加载完成时隐藏进度条 当资源加载完成时,可以将进度条节点隐藏起来。 ``` // 资源加载完成后 progressNode.active = false; // 隐藏进度条节点 ``` 这样,你就可以在 Cocos Creator 3.7 中使用 `cc.resources` 模块和 `cc.ProgressBar` 组件来创建一个资源加载进度条了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值