2.4版本,如何从AssetBundle中,加载二进制类型的数据文件?

版本:v2.4.3

我有一个需求,就是从AssetBundle中,加载一些二进制文件(这些二进制数据是从提取的图片中的alpha通道)

目前看继承自cc.Asset的类里面,没有能直接读二进制Buffer的子类。

所以想请问一下,如何实现从AssetBundle里面,加载二进制数据并且直接读取Buffer内容?

扩展名使用bin或者binary

添加可选参数{ ext: “.bin” },加载下来的数据就是ArrayBuffer

可是bundle的load接口的签名,并没有可选参数呀?

load(paths: string|string[], type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: T|Array) => void): void;

二进制资源类型是 cc.BufferAsset,
_buffer得到的_buffer 属性是二进制数据

确实如此,并且资源后缀名一定要是.bin才行,之前我随便起了一个后缀名,发现读取不到二进制数据。

cc.assetManager.loadAny({ path: "testBin1" }, { bundle: "testBundle1" }, function (err, bufferAsset) {
            var dataView = new DataView(bufferAsset._buffer);
            cc.assert(ArrayBuffer.isView(dataView), "类型不正确");
        });

之前回答的有些问题。
用bundle.load(“testBin1”,function(err,bufferAsset){}) 也可以得到相同的效果。前提保证testBin1的文件后缀是.binary,.bin,.dbbin,.skel

原来如此,非常感谢

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。