// 加载图像 public void loadImage(LoadParam param) { if (!m_path2ResDic.ContainsKey(param.m_path)) { // 保存加载事件处理,因为这个时候资源还没有加载,这次调用仅仅是想加载 AtlasScriptRes ,不想直接回调事件处理函数 Action<IDispatchObject> tmpLoadEventHandle = param.m_loadEventHandle; param.m_loadEventHandle = null; AtlasScriptRes atlasRes = createResItem<AtlasScriptRes>(param); param.m_loadEventHandle = tmpLoadEventHandle; tmpLoadEventHandle = null; atlasRes.loadImage(param); tmpLoadEventHandle = param.m_loadEventHandle; param.m_loadEventHandle = null; param.m_loadInsRes = atlasRes; load<AtlasScriptRes>(param); } else { (m_path2ResDic[param.m_path] as AtlasScriptRes).loadImage(param); } }
// eBundleType 打包类型资源加载 public void loadBundle(LoadParam param) { param.m_resPackType = ResPackType.eBundleType; param.m_resLoadType = Ctx.m_instance.m_cfg.m_resLoadType; load(param); }
public void loadImage(LoadParam param) { ImageItem retImage = null; if (!m_path2Image.ContainsKey(param.m_subPath)) { retImage = createImage(param.m_subPath, refCountResLoadResultNotify.resLoadState); retImage.image = getSprite(param.m_subPath); } else { retImage = m_path2Image[param.m_subPath]; } retImage.refCountResLoadResultNotify.resLoadState.setLoading(); retImage.refCountResLoadResultNotify.refCount.incRef(); if (refCountResLoadResultNotify.resLoadState.hasLoaded()) { if (param.m_loadEventHandle != null) { param.m_loadEventHandle(retImage); } } else if (refCountResLoadResultNotify.resLoadState.hasNotLoadOrLoading()) { if (param.m_loadEventHandle != null) { retImage.refCountResLoadResultNotify.loadResEventDispatch.addEventHandle(param.m_loadEventHandle); } } }
// 加载版本文件 public void loadVerFile(string ver = "") { LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); param.m_path = FILENAME; if (FilesVerType.eStreamingAssetsVer == m_type) { param.m_resLoadType = ResLoadType.eStreamingAssets; } else if (FilesVerType.ePersistentDataVer == m_type) { param.m_resLoadType = ResLoadType.ePersistentData; param.m_version = ver; } else if (FilesVerType.eWebVer == m_type) { param.m_resLoadType = ResLoadType.eLoadWeb; param.m_version = ver; } param.m_loadEventHandle = onLoadEventHandle; Ctx.m_instance.m_resLoadMgr.loadData(param); Ctx.m_instance.m_poolSys.deleteObj(param); }
protected void loadWithResCreatedAndNotLoad <T>(LoadParam param, T resItem) where T : InsResBase, new() { m_path2ResDic[param.m_path] = resItem; m_path2ResDic[param.m_path].refCountResLoadResultNotify.resLoadState.setLoading(); param.m_loadEventHandle = onLoadEventHandle; Ctx.m_instance.m_resLoadMgr.loadResources(param); }
// 加载图像 public void loadImage(LoadParam param) { if (!m_path2ResDic.ContainsKey(param.m_path)) { // 保存加载事件处理,因为这个时候资源还没有加载,这次调用仅仅是想加载 AtlasScriptRes ,不想直接回调事件处理函数 Action <IDispatchObject> tmpLoadEventHandle = param.m_loadEventHandle; param.m_loadEventHandle = null; AtlasScriptRes atlasRes = createResItem <AtlasScriptRes>(param); param.m_loadEventHandle = tmpLoadEventHandle; tmpLoadEventHandle = null; atlasRes.loadImage(param); tmpLoadEventHandle = param.m_loadEventHandle; param.m_loadEventHandle = null; param.m_loadInsRes = atlasRes; load <AtlasScriptRes>(param); } else { (m_path2ResDic[param.m_path] as AtlasScriptRes).loadImage(param); } }
// eResourcesType 打包类型资源加载 public void loadResources(LoadParam param) { param.resolvePath(); #if PKG_RES_LOAD if (param.m_path.IndexOf(PakSys.PAK_EXT) != -1) // 如果加载的是打包文件 { param.m_resPackType = ResPackType.ePakType; } else // 加载的是非打包文件 { param.m_resPackType = ResPackType.eUnPakType; } load(param); #elif UnPKG_RES_LOAD // 判断资源所在的目录,是在 StreamingAssets 目录还是在 persistentData 目录下,目前由于没有完成,只能从 StreamingAssets 目录下加载 param.m_resPackType = ResPackType.eUnPakType; param.m_resLoadType = ResLoadType.eStreamingAssets; return(load(param)); #else param.m_resPackType = ResPackType.eResourcesType; param.m_resLoadType = ResLoadType.eLoadResource; load(param); #endif }
virtual public void loadMiniVerFile(string ver = "") { LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); param.m_path = MINIFILENAME; if (FilesVerType.eStreamingAssetsVer == m_type) { param.m_resLoadType = ResLoadType.eStreamingAssets; } else if (FilesVerType.ePersistentDataVer == m_type) { param.m_resLoadType = ResLoadType.ePersistentData; param.m_version = ver; } else if (FilesVerType.eWebVer == m_type) { param.m_resLoadType = ResLoadType.eLoadWeb; //param.m_version = UtilApi.Range(int.MinValue, int.MaxValue).ToString(); param.m_version = ver; } param.m_loadEventHandle = onMiniLoadEventHandle; Ctx.m_instance.m_resLoadMgr.loadData(param); Ctx.m_instance.m_poolSys.deleteObj(param); }
public void loadSceneCfg(string filename) { LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); param.m_path = Ctx.m_instance.m_cfg.m_pathLst[(int)ResPathType.ePathSceneXml] + filename; param.m_loadEventHandle = onSceneCfgLoadded; Ctx.m_instance.m_resLoadMgr.loadBundle(param); Ctx.m_instance.m_poolSys.deleteObj(param); }
virtual public void loadFile() { LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); LocalFileSys.modifyLoadParam(FILE_LIST, param); param.m_loadEventHandle = onLoadEventHandle; Ctx.m_instance.m_resLoadMgr.loadData(param); Ctx.m_instance.m_poolSys.deleteObj(param); }
public T createResItem <T>(LoadParam param) where T : InsResBase, new() { T ret = new T(); ret.refCountResLoadResultNotify.refCount.incRef(); ret.m_path = param.m_path; ret.refCountResLoadResultNotify.loadResEventDispatch.addEventHandle(param.m_loadEventHandle); return(ret); }
// 从本地磁盘或者网络加载资源 protected void loadFromFile(string reaPath, Action <IDispatchObject> onLoadEventHandle) { LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); LocalFileSys.modifyLoadParam(reaPath, param); param.m_loadNeedCoroutine = false; param.m_resNeedCoroutine = false; param.m_loadEventHandle = onLoadEventHandle; Ctx.m_instance.m_uiPrefabMgr.load <UIPrefabRes>(param); Ctx.m_instance.m_poolSys.deleteObj(param); }
public void loadFile() { string name = "forbidWords.txt"; LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); LocalFileSys.modifyLoadParam(Path.Combine(Ctx.m_instance.m_cfg.m_pathLst[(int)ResPathType.ePathWord], name), param); param.m_loadEventHandle = onLoadEventHandle; param.m_loadNeedCoroutine = false; param.m_resNeedCoroutine = false; Ctx.m_instance.m_resLoadMgr.loadResources(param); Ctx.m_instance.m_poolSys.deleteObj(param); }
public void loadSceneRes(string filename) { Ctx.m_instance.m_netDispList.bStopNetHandle = true; // 加载场景需要停止处理消息,因为很多资源都要等到场景加载完成才初始化 LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); LocalFileSys.modifyLoadParam(string.Format("{0}{1}", Ctx.m_instance.m_cfg.m_pathLst[(int)ResPathType.ePathScene], filename), param); param.m_loadEventHandle = onSceneResLoadded; param.m_resNeedCoroutine = true; param.m_loadNeedCoroutine = true; Ctx.m_instance.m_resLoadMgr.loadLevel(param); Ctx.m_instance.m_poolSys.deleteObj(param); }
// 加载一个表 public void loadOneTable(TableID tableID) { TableBase table = m_dicTable[tableID]; LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); LocalFileSys.modifyLoadParam(Path.Combine(Ctx.m_instance.m_cfg.m_pathLst[(int)ResPathType.ePathTablePath], table.m_resName), param); param.m_loadEventHandle = onLoadEventHandle; param.m_loadNeedCoroutine = false; param.m_resNeedCoroutine = false; Ctx.m_instance.m_resLoadMgr.loadResources(param); Ctx.m_instance.m_poolSys.deleteObj(param); }
public T getAndAsyncLoad <T>(string path, Action <IDispatchObject> handle) where T : InsResBase, new() { T ret = null; LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); LocalFileSys.modifyLoadParam(path, param); param.m_loadNeedCoroutine = true; param.m_resNeedCoroutine = true; param.m_loadEventHandle = handle; ret = getAndLoad <T>(param); Ctx.m_instance.m_poolSys.deleteObj(param); return(ret); }
//<?xml version="1.0" encoding="utf-8"?> //<!-- type 就是一个功能 item 就是一项,顺序千万不要乱,否则都乱了 --> //<msg> // <t> // <i>数据结构</i> // </t> //</msg> public void loadXml() { if (!m_isLoaded) { m_isLoaded = true; LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); param.m_loadNeedCoroutine = false; param.m_resNeedCoroutine = false; LocalFileSys.modifyLoadParam(m_ID2FileName[m_langID].m_filePath, param); param.m_loadEventHandle = onLoadEventHandle; Ctx.m_instance.m_resLoadMgr.loadResources(param); Ctx.m_instance.m_poolSys.deleteObj(param); } }
protected void loadCfg <T>(XmlCfgID id) where T : XmlCfgBase, new() { T item = new T(); m_id2CfgDic[id] = item; LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); LocalFileSys.modifyLoadParam(item.m_path, param); param.m_loadEventHandle = onLoadEventHandle; param.m_loadNeedCoroutine = false; param.m_resNeedCoroutine = false; Ctx.m_instance.m_resLoadMgr.loadResources(param); Ctx.m_instance.m_poolSys.deleteObj(param); }
// 加载游戏模块 public void loadModule(ModuleID moduleID) { if (!m_type2ItemDic[moduleID].m_isLoaded) { // 初始化完成,开始加载自己的游戏场景 LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); LocalFileSys.modifyLoadParam(m_type2ItemDic[moduleID].m_path, param); param.m_loadEventHandle = m_type2ItemDic[moduleID].m_loadEventHandle; Ctx.m_instance.m_resLoadMgr.loadResources(param); Ctx.m_instance.m_poolSys.deleteObj(param); } else { Ctx.m_instance.m_logSys.log("模块重复加载"); } }
protected void loadWithResCreatedAndLoad(LoadParam param) { m_path2ResDic[param.m_path].refCountResLoadResultNotify.refCount.incRef(); if (m_path2ResDic[param.m_path].refCountResLoadResultNotify.resLoadState.hasLoaded()) { if (param.m_loadEventHandle != null) { param.m_loadEventHandle(m_path2ResDic[param.m_path]); // 直接通知上层完成加载 } } else { if (param.m_loadEventHandle != null) { m_path2ResDic[param.m_path].refCountResLoadResultNotify.loadResEventDispatch.addEventHandle(param.m_loadEventHandle); } } }
// eLevelType 打包类型资源加载,都用协程加载 public void loadLevel(LoadParam param) { param.resolveLevel(); #if PKG_RES_LOAD param.m_resPackType = ResPackType.ePakLevelType; param.resolvePath(); load(param); #elif UnPKG_RES_LOAD param.m_resPackType = ResPackType.eUnPakLevelType; param.m_resLoadType = ResLoadType.eStreamingAssets; load(param); #else param.m_resPackType = ResPackType.eLevelType; param.m_resLoadType = Ctx.m_instance.m_cfg.m_resLoadType; load(param); #endif }
protected void loadWithResCreatedAndNotLoad(LoadParam param, ResItem resItem) { m_LoadData.m_path2Res[param.m_path] = resItem; m_LoadData.m_path2Res[param.m_path].refCountResLoadResultNotify.resLoadState.setLoading(); LoadItem loadItem = createLoadItem(param); if (m_curNum < m_maxParral) { m_LoadData.m_path2LDItem[param.m_path] = loadItem; m_LoadData.m_path2LDItem[param.m_path].load(); ++m_curNum; } else { m_LoadData.m_willLDItem.Add(loadItem); } resetLoadParam(param); }
public void play(SoundParam soundParam) { if (!soundParam.m_bLoop) { addTimer(); } soundParam.m_path = Ctx.m_instance.m_pPakSys.getCurResPakPathByResPath(soundParam.m_path, null); if (m_path2SoundDic.ContainsKey(soundParam.m_path)) // 如果已经有了直接返回 { if (!m_path2SoundDic[soundParam.m_path].bInCurState(SoundPlayState.eSS_Play)) { m_path2SoundDic[soundParam.m_path].Play(); } } else { // 创建 if (isPrefab(soundParam.m_path)) { m_path2SoundDic[soundParam.m_path] = new SoundPrefabItem(); m_path2SoundDic[soundParam.m_path].m_soundResType = SoundResType.eSRT_Prefab; } else { m_path2SoundDic[soundParam.m_path] = new SoundClipItem(); m_path2SoundDic[soundParam.m_path].m_soundResType = SoundResType.eSRT_Clip; } m_audioList.Add(m_path2SoundDic[soundParam.m_path]); m_path2SoundDic[soundParam.m_path].initParam(soundParam); LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); param.m_path = soundParam.m_path; param.m_loadEventHandle = onLoadEventHandle; param.m_loadNeedCoroutine = false; param.m_resNeedCoroutine = false; Ctx.m_instance.m_resLoadMgr.loadResources(param); Ctx.m_instance.m_poolSys.deleteObj(param); } }
public static void modifyLoadParam(string resPath, LoadParam param) { #if PKG_RES_LOAD param.m_origPath = resPath; // 记录原始的资源名字 string retPath = resPath; if ("Module/AutoUpdate.prefab" == resPath) // 自动更新模块更新还没有实现 { param.m_resLoadType = ResLoadType.eStreamingAssets; } else { // 获取包的名字 if (Ctx.m_instance.m_pPakSys.path2PakDic.ContainsKey(resPath)) { retPath = Ctx.m_instance.m_pPakSys.path2PakDic[resPath].m_pakName; } if (param != null) { Ctx.m_instance.m_localFileSys.getAbsPathByRelPath(ref retPath, ref param.m_resLoadType); } else { ResLoadType tmp = ResLoadType.eStreamingAssets; Ctx.m_instance.m_localFileSys.getAbsPathByRelPath(ref retPath, ref tmp); } } param.m_path = retPath; param.m_pakPath = param.m_path; #elif UnPKG_RES_LOAD if (param != null) { param.m_resLoadType = ResLoadType.eStreamingAssets; } param.m_path = resPath; #else param.m_path = resPath; #endif }
// 获取当前资源所在的包文件名字 public string getCurResPakPathByResPath(string resPath, LoadParam param) { //Ctx.m_instance.m_shareData.m_resInPakPath = resPath; //return Ctx.m_instance.m_shareData.m_resInPakPath; #if PKG_RES_LOAD string retPath = resPath; if ("Module/AutoUpdate.prefab" == resPath) // 自动更新模块更新还没有实现 { param.m_resLoadType = ResLoadType.eStreamingAssets; } else { // 获取包的名字 if (m_path2PakDic.ContainsKey(resPath)) { retPath = m_path2PakDic[resPath].m_pakName; } if (param != null) { retPath = Ctx.m_instance.m_localFileSys.getAbsPathByRelPath(ref retPath, ref param.m_resLoadType); } else { ResLoadType tmp = ResLoadType.eStreamingAssets; retPath = Ctx.m_instance.m_localFileSys.getAbsPathByRelPath(ref retPath, ref tmp); } } return(retPath); #elif UnPKG_RES_LOAD if (param != null) { param.m_resLoadType = ResLoadType.eStreamingAssets; } return(resPath); #else return(resPath); #endif }
// 通用类型,需要自己设置很多参数 public void load(LoadParam param) { ++m_loadingDepth; if (m_LoadData.m_path2Res.ContainsKey(param.m_path)) { loadWithResCreatedAndLoad(param); } else if (param.m_loadRes != null) { loadWithResCreatedAndNotLoad(param, m_LoadData.m_path2Res[param.m_path]); } else { loadWithNotResCreatedAndNotLoad(param); } --m_loadingDepth; if (m_loadingDepth == 0) { unloadNoRefResFromList(); } }
public virtual void load <T>(LoadParam param) where T : InsResBase, new() { ++m_loadingDepth; if (m_path2ResDic.ContainsKey(param.m_path)) { loadWithResCreatedAndLoad(param); } else if (param.m_loadInsRes != null) { loadWithResCreatedAndNotLoad <T>(param, param.m_loadInsRes as T); } else { loadWithNotResCreatedAndNotLoad <T>(param); } --m_loadingDepth; if (m_loadingDepth == 0) { unloadNoRefResFromList(); } }
public void loadData(LoadParam param) { param.m_resPackType = ResPackType.eDataType; if (ResLoadType.eStreamingAssets == param.m_resLoadType) { param.m_path = Path.Combine(Ctx.m_instance.m_localFileSys.getLocalReadDir(), param.m_path); } else if (ResLoadType.ePersistentData == param.m_resLoadType) { param.m_path = Path.Combine(Ctx.m_instance.m_localFileSys.getLocalWriteDir(), param.m_path); } else if (ResLoadType.eLoadWeb == param.m_resLoadType) { param.m_path = Path.Combine(Ctx.m_instance.m_cfg.m_webIP, param.m_path); } //if (!string.IsNullOrEmpty(param.m_version)) //{ // param.m_path = string.Format("{0}?v={1}", param.m_path, param.m_version); //} load(param); }
public void loadOneUpdateFile(string path, FileVerInfo fileInfo) { //string loadPath = UtilApi.combineVerPath(path, fileInfo.m_fileMd5); //m_loadingPath.Add(loadPath); m_loadingPath.Add(UtilLogic.webFullPath(path)); if (Ctx.m_instance.m_versionSys.m_localVer.m_path2HashDic.ContainsKey(path)) { UtilApi.delFile(Path.Combine(Ctx.m_instance.m_localFileSys.getLocalWriteDir(), UtilLogic.combineVerPath(path, Ctx.m_instance.m_versionSys.m_localVer.m_path2HashDic[path].m_fileMd5))); // 删除当前目录下已经有的 old 文件 } //UtilApi.delFileNoVer(path); // 删除当前目录下已经有的 old 文件 LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>(); param.m_path = path; param.m_resLoadType = ResLoadType.eLoadWeb; param.m_version = fileInfo.m_fileMd5; param.m_loadEventHandle = onLoadEventHandle; Ctx.m_instance.m_resLoadMgr.loadData(param); Ctx.m_instance.m_poolSys.deleteObj(param); }
public static void modifyLoadParam(string resPath, LoadParam param) { #if PKG_RES_LOAD param.m_origPath = resPath; // 记录原始的资源名字 string retPath = resPath; if ("Module/AutoUpdate.prefab" == resPath) // 自动更新模块更新还没有实现 { param.m_resLoadType = ResLoadType.eStreamingAssets; } else { // 获取包的名字 if (Ctx.m_instance.m_pPakSys.path2PakDic.ContainsKey(resPath)) { retPath = Ctx.m_instance.m_pPakSys.path2PakDic[resPath].m_pakName; } if(param != null) { Ctx.m_instance.m_localFileSys.getAbsPathByRelPath(ref retPath, ref param.m_resLoadType); } else { ResLoadType tmp = ResLoadType.eStreamingAssets; Ctx.m_instance.m_localFileSys.getAbsPathByRelPath(ref retPath, ref tmp); } } param.m_path = retPath; param.m_pakPath = param.m_path; #elif UnPKG_RES_LOAD if (param != null) { param.m_resLoadType = ResLoadType.eStreamingAssets; } param.m_path = resPath; #else param.m_path = resPath; #endif }
public ImageItem getAndLoadImage(LoadParam param) { loadImage(param); return getImage(param.m_path, param.m_subPath); }
public ResItem getAndLoad(LoadParam param) { param.resolvePath(); load(param); return getResource(param.m_path); }
// 重置加载设置 protected void resetLoadParam(LoadParam loadParam) { loadParam.m_loadNeedCoroutine = true; loadParam.m_resNeedCoroutine = true; }
// 获取当前资源所在的包文件名字 public string getCurResPakPathByResPath(string resPath, LoadParam param) { //Ctx.m_instance.m_shareData.m_resInPakPath = resPath; //return Ctx.m_instance.m_shareData.m_resInPakPath; #if PKG_RES_LOAD string retPath = resPath; if ("Module/AutoUpdate.prefab" == resPath) // 自动更新模块更新还没有实现 { param.m_resLoadType = ResLoadType.eStreamingAssets; } else { // 获取包的名字 if (m_path2PakDic.ContainsKey(resPath)) { retPath = m_path2PakDic[resPath].m_pakName; } if(param != null) { retPath = Ctx.m_instance.m_localFileSys.getAbsPathByRelPath(ref retPath, ref param.m_resLoadType); } else { ResLoadType tmp = ResLoadType.eStreamingAssets; retPath = Ctx.m_instance.m_localFileSys.getAbsPathByRelPath(ref retPath, ref tmp); } } return retPath; #elif UnPKG_RES_LOAD if (param != null) { param.m_resLoadType = ResLoadType.eStreamingAssets; } return resPath; #else return resPath; #endif }
// 资源创建并且正在被加载 protected void loadWithResCreatedAndLoad(LoadParam param) { m_LoadData.m_path2Res[param.m_path].refCountResLoadResultNotify.refCount.incRef(); if (m_LoadData.m_path2Res[param.m_path].refCountResLoadResultNotify.resLoadState.hasLoaded()) { if (param.m_loadEventHandle != null) { param.m_loadEventHandle(m_LoadData.m_path2Res[param.m_path]); } } else { if (param.m_loadEventHandle != null) { m_LoadData.m_path2Res[param.m_path].refCountResLoadResultNotify.loadResEventDispatch.addEventHandle(param.m_loadEventHandle); } } resetLoadParam(param); }
protected LoadItem createLoadItem(LoadParam param) { LoadItem loadItem = findLoadItemFormPool(param.m_resPackType); if (ResPackType.eResourcesType == param.m_resPackType) // 默认 Bundle 中资源 { if (loadItem == null) { loadItem = new ResourceLoadItem(); } } else if (ResPackType.eBundleType == param.m_resPackType) // Bundle 打包模式 { if (loadItem == null) { loadItem = new BundleLoadItem(); } } else if (ResPackType.eLevelType == param.m_resPackType) { if (loadItem == null) { loadItem = new LevelLoadItem(); } (loadItem as LevelLoadItem).levelName = param.lvlName; } else if (ResPackType.eDataType == param.m_resPackType) { if (loadItem == null) { loadItem = new DataLoadItem(); } (loadItem as DataLoadItem).m_version = param.m_version; } else if (ResPackType.eUnPakType == param.m_resPackType || ResPackType.eUnPakLevelType == param.m_resPackType) { if (loadItem == null) { loadItem = new ABUnPakLoadItem(); } } else if (ResPackType.ePakType == param.m_resPackType || ResPackType.ePakLevelType == param.m_resPackType) { if (loadItem == null) { loadItem = new ABPakLoadItem(); } } loadItem.resPackType = param.m_resPackType; loadItem.resLoadType = param.m_resLoadType; loadItem.path = param.m_path; loadItem.pathNoExt = param.m_pathNoExt; loadItem.extName = param.extName; loadItem.loadNeedCoroutine = param.m_loadNeedCoroutine; loadItem.nonRefCountResLoadResultNotify.loadResEventDispatch.addEventHandle(onLoadEventHandle); return loadItem; }
public ResItem createResItem(LoadParam param) { ResItem resItem = findResFormPool(param.m_resPackType); if (ResPackType.eLevelType == param.m_resPackType) { if (resItem == null) { resItem = new LevelResItem(); } (resItem as LevelResItem).levelName = param.lvlName; } else if (ResPackType.eBundleType == param.m_resPackType) { if (resItem == null) { resItem = new BundleResItem(); } } else if (ResPackType.eResourcesType == param.m_resPackType) { if (resItem == null) { resItem = new PrefabResItem(); } (resItem as PrefabResItem).prefabName = param.prefabName; } else if (ResPackType.eDataType == param.m_resPackType) { if (resItem == null) { resItem = new DataResItem(); } } else if (ResPackType.eUnPakType == param.m_resPackType) { if (resItem == null) { resItem = new ABUnPakComFileResItem(); } } else if (ResPackType.eUnPakLevelType == param.m_resPackType) { if (resItem == null) { resItem = new ABUnPakLevelFileResItem(); } (resItem as ABUnPakLevelFileResItem).levelName = param.lvlName; } else if (ResPackType.ePakType == param.m_resPackType) { if (resItem == null) { resItem = new ABPakComFileResItem(); } } else if (ResPackType.ePakLevelType == param.m_resPackType) { if (resItem == null) { resItem = new ABPakLevelFileResItem(); } (resItem as ABPakLevelFileResItem).levelName = param.lvlName; (resItem as ABPakLevelFileResItem).m_origPath = param.m_origPath; } //else if (ResPackType.ePakMemType == param.m_resPackType) //{ // if (resitem == null) // { // resitem = new ABMemUnPakComFileResItem(); // } //} //else if (ResPackType.ePakMemLevelType == param.m_resPackType) //{ // if (resitem == null) // { // resitem = new ABMemUnPakLevelFileResItem(); // } // (resitem as ABMemUnPakLevelFileResItem).levelName = param.lvlName; //} resItem.refCountResLoadResultNotify.refCount.incRef(); resItem.resNeedCoroutine = param.m_resNeedCoroutine; resItem.resPackType = param.m_resPackType; resItem.resLoadType = param.m_resLoadType; resItem.path = param.m_path; resItem.pathNoExt = param.m_pathNoExt; resItem.extName = param.extName; if (param.m_loadEventHandle != null) { resItem.refCountResLoadResultNotify.loadResEventDispatch.addEventHandle(param.m_loadEventHandle); } return resItem; }
// eResourcesType 打包类型资源加载 public void loadResources(LoadParam param) { param.resolvePath(); #if PKG_RES_LOAD if (param.m_path.IndexOf(PakSys.PAK_EXT) != -1) // 如果加载的是打包文件 { param.m_resPackType = ResPackType.ePakType; } else // 加载的是非打包文件 { param.m_resPackType = ResPackType.eUnPakType; } load(param); #elif UnPKG_RES_LOAD // 判断资源所在的目录,是在 StreamingAssets 目录还是在 persistentData 目录下,目前由于没有完成,只能从 StreamingAssets 目录下加载 param.m_resPackType = ResPackType.eUnPakType; param.m_resLoadType = ResLoadType.eStreamingAssets; return load(param); #else param.m_resPackType = ResPackType.eResourcesType; param.m_resLoadType = ResLoadType.eLoadResource; load(param); #endif }
protected void loadWithNotResCreatedAndNotLoad(LoadParam param) { ResItem resItem = createResItem(param); loadWithResCreatedAndNotLoad(param, resItem); }
protected void loadWithNotResCreatedAndNotLoad <T>(LoadParam param) where T : InsResBase, new() { T resItem = createResItem <T>(param); loadWithResCreatedAndNotLoad <T>(param, resItem); }
// 通用类型,需要自己设置很多参数 public void load(LoadParam param) { ++m_loadingDepth; if (m_LoadData.m_path2Res.ContainsKey(param.m_path)) { loadWithResCreatedAndLoad(param); } else if(param.m_loadRes != null) { loadWithResCreatedAndNotLoad(param, m_LoadData.m_path2Res[param.m_path]); } else { loadWithNotResCreatedAndNotLoad(param); } --m_loadingDepth; if (m_loadingDepth == 0) { unloadNoRefResFromList(); } }
public T getAndLoad <T>(LoadParam param) where T : InsResBase, new() { load <T>(param); return(getRes(param.m_path) as T); }