creater编译后的文件规则是怎样的?

因为有时候要看一下编译后的文件,但在编译后的一大堆import和native里找确实不好找,想问下生成规则是啥?看了一下配置没找到直观的索引关系。

另外吐槽一下,我看了编译后的资源索引json文件,觉得设计有点“无语”,比如:
image
这个用个数组就能表达了吧…感觉这个config不少设计无形中增加了不少大小(随便吐槽一下,不要在意 :smile:


  /** 构建后的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;
  }
4赞

前段时间整理的asset bundle的定义,希望对你有帮助

这里面的数字在构建后会替换成uuid,最终变成键值对形式,中括号里的第二个元素数字代表资源类型,别问我是怎么知道的?

辛苦两位,我看看,如果后面有空弄成工具再回馈社区 :smile:

这堆信息貌似要算出最后png的文件名还不行,或者说还不知道算法,反正不是直接用uuid的

好了,在引擎的某个类里找到算法了,真绕 :cowboy_hat_face:

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);
}

谢谢了,我刚好也看到这里 :smile:

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