IBuildResult的assetPathInfo.raw为空

版本:3.5.0
在onAfterBuild(options: ITaskOptions, result: IBuildResult)回调中。
通过 let assetPathInfos = result.getAssetPathInfo(uuid);获得构造资源信息。
通过for (let assetPathInfo of assetPathInfos) 获取每一个资源信息。
如果这个资源是mp3格式的,assetPathInfo.raw为空。

你好,已经定位到问题,感谢反馈,问题会修复在 3.5.1。

另外还有一个问题想和你们请教一下。
就是自定义json在bundle压缩类型选择为“合并所有Json”文件后也一样会被合并。(之所以选择这个模式是因为是3D资源比较多的情况下,不选择这个模式,包体会大很多,快以M为单位了)
而我这边的需求刚好是需要发布后,对自定义的json配置文件进行修改替换.
所以有没有可能,可以让开发者自己定义,自己的json文件要不要一起被合并和不要往用户自己的json文件中写入引擎的一些自定义数据。

3D资源比较多的情况下,不选择这个模式,包体会大很多

这个是啥,是在说这个问题吗?3.5.0比较严重的bug,打包发现预制体的json文件非常大,里面每个都包含了shader代码 是的话可以使用这里发布的插件绕过。

自定义json在bundle压缩类型选择为“合并所有Json”文件后也一样会被合并

关于 Bundle 中资源细粒度控制的问题在内部有相关的规划讨论,需要对 Bundle 的使用设计做比较大的调整方案还没确定,近期版本内暂时不会有。所以目前对于自定义 json 确实没有特别好的方式,不想跟随 Bundle 一起合并的数据就不要放在 Bundle 文件夹内了,至于这些自定义 json 需要的话,可以通过构建插件在打包阶段去添加到实际位置。

3D资源比较多的情况下,不选择这个模式,包体会大很多

我试了一下,确实是这个问题,已经使用插件来解决了。

自定义json在bundle压缩类型选择为“合并所有Json”文件后也一样会被合并
请问一下,目前可以通过插件方式来让自定义json不被合并吗,而是就按本身json内容直接导出。如果可以,请教一下,怎么做。

我们目前没有公开提供比较方便的修改方式,上面那个修复插件代码其实展示一些 HACK 的代码示例,你可以看看代码, bundle.groups 里去移除那个自定义 JSON uuid 就行了。但是我必须声明,这些接口是不保障兼容性的,只是作为一个临时方案可以使用。这些接口短期内不会改,当然如果 bundle 结构调整的时候是可能变化的。

好的,谢谢。