因为有时候要看一下编译后的文件,但在编译后的一大堆import和native里找确实不好找,想问下生成规则是啥?看了一下配置没找到直观的索引关系。
另外吐槽一下,我看了编译后的资源索引json文件,觉得设计有点“无语”,比如:
这个用个数组就能表达了吧…感觉这个config不少设计无形中增加了不少大小(随便吐槽一下,不要在意 )
因为有时候要看一下编译后的文件,但在编译后的一大堆import和native里找确实不好找,想问下生成规则是啥?看了一下配置没找到直观的索引关系。
另外吐槽一下,我看了编译后的资源索引json文件,觉得设计有点“无语”,比如:
这个用个数组就能表达了吧…感觉这个config不少设计无形中增加了不少大小(随便吐槽一下,不要在意 )
/** 构建后的Bundle config.json文件解析 */
interface BundleConfig {
// 包内资源列表 <资源uuid索引,<资源相对路径, 资源类型索引>>
paths: Record<string, [string, number]>;
// 类型数组 debug没有该字段;
types: string[];
// 资源uuid数组
uuids: string[];
// 场景 <场景url, 场景资源uuid索引>
scenes: Record<string, number>;
// 重新使用[uuid索引,重新使用次数]
redirect: number[];
// 依赖的bundle资源包名称
deps: string[];
// 合并的资源信息 {[合并的uuid] : [被合并的资源索引,...]}
packs: Record<string, number[]>;
// bundle名称
name: string;
// 资源前缀 比如cdn链接...
base: string;
// json文件夹
importBase: string;
// 原生资源信息
nativeBase: string;
// 是否是debug模式
debug: boolean;
// 是否zip压缩
isZip: boolean;
// 脚本是否加密
encrypted: boolean;
// 版本信息, 选择md5配置的时候
versions: {
// [资源uuid索引, md5, 资源uuid索引, md5,...],
import: any[];
// [资源uuid索引, md5, 资源uuid索引, md5,...]
native: any[];
}
}
interface BundleConfigDebug {
// 包内资源列表 <资源uuid, [资源相对路径, 资源类型]>
paths: Record<string, [string, string]>;
// 资源uuid数组
uuids: string[];
// 场景 <场景url, 场景uuid>
scenes: Record<string, string>;
// 重新使用[uuid,重新使用次数]
redirect: any[];
// 依赖的bundle资源包名称
deps: string[];
// 合并的资源信息 {[合并的uuid] : [被合并的资源uuid,...]}
packs: Record<string, string[]>;
// bundle名称
name: string;
// 资源前缀 比如cdn链接...
base: string;
// json文件夹
importBase: string;
// 原生资源信息
nativeBase: string;
// 是否是debug模式
debug: boolean;
// 是否zip压缩
isZip: boolean;
// 脚本是否加密
encrypted: boolean;
// 版本信息, 选择md5配置的时候
versions: {
// [资源uuid, md5, 资源uuid, md5,...],
import: string[];
// [资源uuid, md5, 资源uuid, md5,...]
native: string[];
}
}
interface BundleConfigAsset {
uuid: string;
path: string;
type: string;
}
前段时间整理的asset bundle的定义,希望对你有帮助
这里面的数字在构建后会替换成uuid,最终变成键值对形式,中括号里的第二个元素数字代表资源类型,别问我是怎么知道的?
辛苦两位,我看看,如果后面有空弄成工具再回馈社区
这堆信息貌似要算出最后png的文件名还不行,或者说还不知道算法,反正不是直接用uuid的
好了,在引擎的某个类里找到算法了,真绕
Editor.Utils.UuidUtils
uuid前2位是文件夹名称
/**
* 获取uuid资源所在bundle的目录
* @param {string} uuid
* @returns {string}
*/
EditorUtil.uuid2path = function (uuid) {
return uuid.substr(0, 2) + "/" + uuid;
}
/**
* 获取uuid对应的资源所在的文件夹
* @param {string} uuid
* @returns {string}
*/
EditorUtil.uuiddir = function (uuid) {
return uuid.substr(0, 2)
}
/**
* 解码uuid
* @param {string} uuid
* @returns {string}
*/
EditorUtil.decompressUuid = function (uuid) {
return Editor.Utils.UuidUtils.decompressUuid(uuid);
}
/**
* 编码uuid
* @param {string} uuid
* @returns {string}
*/
EditorUtil.compressUuid = function (uuid) {
return Editor.Utils.UuidUtils.compressUuid(uuid, true);
}
谢谢了,我刚好也看到这里
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。