cc.loader.md5Pipe.transformURL 在2.4里应该怎么移植?

看到只是和新的管线方式有关系 不会啊 给个例子吧 这都是常用的用法啊 ,不要说我要求高啊

:angry:

遇到同样的问题,有知道如何解决的吗?

2.4以后的写法获取cacert.pem(存放在resources目录下)文件构建后的路径
let uuid = cc.resources.getInfoWithPath(‘cacert’).uuid;
var pemUrl = cc.assetManager.utils.getUrlWithUuid(uuid, { isNative: true, ext: ‘.pem’ });

是热更那边引用的吧,用cc.assetManager.md5Pipe.transformURL(url);

这个 类assetManager 下面 根本没这样方法 文档也写了 要替换,但是这个肯定不是改一个属性这种简单的替换

如果是热更新的话,你可以再商店源码里搜索2.4.x热更demo。里面有完整的示例

那个demo 我去商店 花钱下载了,里面的修改就是你说这样修改的 关键是 Cocos Creator 这个类下面没有这样的语法,我觉得哪个作者对这个知识也是一知半解,他的demo 和 官方的热更新 demo 2.3.x 分支 几乎一样,我花了几块钱不算啥,希望作者能真的把这个地方补充完整

同样的问题ts

解决了吗?

有两种方式可以获取带 md5 的路径:

  1. 如果资源加载过了,那直接获取到资源,用 asset.nativeUrl 获取路径,这个路径是已经带了md5了,不需要额外增加 md5 了,可以直接用,如果你嫌拼接麻烦,可以先加载资源,然后用这种方式来获取;

  2. 如果资源还没加载过,那就只能手动拼接出路径来,要拼接路径,首先要知道资源的 uuid。uuid 的获取方式可以在编辑器里查看,然后写死在代码里,如果你知道资源在项目中的相对路径的话,也可以通过 cc.resources.getInfoWithPath 这个接口传入相对路径来获取 uuid;

获取到 uuid 之后。就通过以下接口拼出完整路径,

assetManager.utils.getUrlWithUuid(uuid, { isNative: true, nativeExt: '.png' });

isNative 是指,你需要的路径是否是原生资源路径(Creator 在打包后,大部分资源会输出两个文件,一个文件是 json,存的是资源的描述信息,另一个文件就是原生资源,比如图片,模型的二进制数据等,isNative 就是用来确定你需要的是哪一个文件的路径,大部分情况设置为 true);nativeExt 是指,当 isNative 是 true 时,需要手动指定一个扩展名来拼,比如 .png,你可能会问为什么需要手动传扩展名,引擎为什么查不到扩展名,注意:因为此时这个资源没有被加载,引擎无法知道这个资源究竟是什么资源,引擎只知道一个uuid。所以只能手动传个扩展名

4赞