import InstanceT from "../ExUtils/InstanceT"; /** * 关键资源点名字枚举 */ export enum EKeyResName { /**预制体路径 */ HttpUrl = '', /**CSV配置表目录 */ ConfigCsv = 'ConfigCsv', /**Json配置表目录 */ ConfigJson = 'ConfigJson', /**预制体 */ Prefabs = 'Prefabs', /**UI预制体 */ UIPrefabs = 'UIPrefabs', /**UI子预制体 */ UIChildPrefabs = 'UIChildPrefabs', /**spine动画文件 */ Spine = 'Spine', /**图片文件 */ Texture = 'Texture', /**图集 */ Atlas = "Atlas", /** 字体目录 */ Font = 'Font', /** 音效文件目录 */ Sound = 'Sound', /**视频 */ Video = 'Video', } /** * 关键资源点列表管理器 */ @InstanceT.DecorateInstance() export default class KeyResManager { /** 单例 */ private static readonly instance: KeyResManager; //关键资源列表 private m_KeyResList: { [index: string]: string } = {}; // private constructor() { //注册关键资源目录 this.m_KeyResList = { [EKeyResName.HttpUrl]: EKeyResName.HttpUrl + '/', [EKeyResName.ConfigCsv]: EKeyResName.HttpUrl + EKeyResName.ConfigCsv + '/', [EKeyResName.ConfigJson]: EKeyResName.HttpUrl + EKeyResName.ConfigJson + '/', [EKeyResName.Prefabs]: EKeyResName.HttpUrl + EKeyResName.Prefabs + '/', [EKeyResName.UIPrefabs]: EKeyResName.HttpUrl + EKeyResName.UIPrefabs + '/', [EKeyResName.UIChildPrefabs]: EKeyResName.HttpUrl + EKeyResName.UIChildPrefabs + '/', [EKeyResName.Spine]: EKeyResName.HttpUrl + EKeyResName.Spine + '/', [EKeyResName.Texture]: EKeyResName.HttpUrl + EKeyResName.Texture + '/', [EKeyResName.Atlas]: EKeyResName.HttpUrl + EKeyResName.Atlas + '/', [EKeyResName.Sound]: EKeyResName.HttpUrl + EKeyResName.Sound + "/", [EKeyResName.Font]: EKeyResName.HttpUrl + EKeyResName.Font + '/', [EKeyResName.Video]: EKeyResName.HttpUrl + EKeyResName.Video + "/", }; }; /** * 判断是否存在某个关键点key * @param _key 关键点key */ public static ifKeyRes(_key: string): boolean { return Object.keys(this.instance.m_KeyResList).findIndex((item) => { return item == _key; }) != -1; } /** * 获取一个关键点资源的路径 * @param _key 关键点key */ public static getResURL(_key: string): string { return this.instance.m_KeyResList[_key]; } /** * 动态添加关键路径 * @param _key 关键值 * @param _string 路径 */ public static addResUrl(_key: string, _string: string) { this.instance.m_KeyResList[_key] = _string; } }