Texture2D ILibaryHandle.GetTexture2d(string objName) { string _type = ResLibaryConfig.ExistType[LibaryTypeEnum.LibaryType_Texture2D]; FileStateObj stateObj = GetFileStateObj(_type, objName); if (stateObj != null) { if (stateObj.m_Asset == null) { stateObj.m_Asset = ResLibaryTool.readLocalTexture2d(stateObj.m_Path); stateObj.m_Quote = 0; } Texture2D t = (Texture2D)stateObj.m_Asset; if (t != null && stateObj.m_ExistStatus == AssetExistStatusEnum.Quote) { stateObj.m_Quote++; } if (stateObj.m_ExistStatus == AssetExistStatusEnum.Once) { stateObj.m_Asset = null; } return(t); } return(null); }
Sprite ILibaryHandle.GetSprite(string objName) { string _type = ResLibaryConfig.ExistType[LibaryTypeEnum.LibaryType_Texture2D]; FileStateObj stateObj = GetFileStateObj(_type, objName); if (stateObj != null) { Sprite spr = null; if (stateObj.m_Asset == null) { Texture2D t = ((ILibaryHandle)this).GetTexture2d(objName); if (t != null) { stateObj.m_Asset = Sprite.Create(t, new Rect(0, 0, t.width, t.height), Vector2.zero); } } spr = (Sprite)stateObj.m_Asset; if (spr != null && stateObj.m_ExistStatus == AssetExistStatusEnum.Quote) { stateObj.m_Quote++; } if (stateObj.m_ExistStatus == AssetExistStatusEnum.Once) { stateObj.m_Asset = null; } return(spr); } return(null); }
string ILibaryHandle.GetTextAsset(string objName) { string _type = ResLibaryConfig.ExistType[LibaryTypeEnum.LibaryType_TextAsset]; FileStateObj stateObj = GetFileStateObj(_type, objName); if (stateObj != null) { string path = stateObj.m_Path; string str = null; if (stateObj.m_Asset == null) { stateObj.m_Asset = ResLibaryTool.LoadFileStr(path); } ; str = (string)stateObj.m_Asset; if (str != null && stateObj.m_ExistStatus == AssetExistStatusEnum.Quote) { stateObj.m_Quote++; } if (stateObj.m_ExistStatus == AssetExistStatusEnum.Once) { stateObj.m_Asset = null; } return(str); } return(null); }
private IEnumerator InitLibaryAssetSetting(List <ResourceSettingStateObj> list, int iterationsPerFrame = 200) { int iterations = 0; HashSet <ResourceSettingStateObj> array = new HashSet <ResourceSettingStateObj>(list); foreach (var item in array) { string _type = item.m_Type; if (!resourceDict.ContainsKey(_type)) { resourceDict[_type] = new Dictionary <string, FileStateObj>(); } Dictionary <string, FileStateObj> dict = resourceDict[_type]; FileStateObj resobj = new FileStateObj(item); dict[item.m_Name] = resobj; LibaryStateObj libaryObj = new LibaryStateObj(); libaryObj.m_Name = item.m_Name; libaryObj.m_Status = LibaryStatusEnum.DIR_STREAMINGASSET; libaryObj.m_Type = item.m_Type; libaryObj.m_Path = resobj.m_Path; if (item.m_ExistStatus == AssetExistStatusEnum.Globle && ResLibaryConfig.ExistTypeNameToType.ContainsKey(resobj.m_Type)) { switch (ResLibaryConfig.ExistTypeNameToEnum[resobj.m_Type]) { case LibaryTypeEnum.LibaryType_Texture2D: case LibaryTypeEnum.LibaryType_TextAsset: case LibaryTypeEnum.LibaryType_Sprite: resobj.m_Asset = ((ILibaryHandle)this).GetUnityObject(_type, resobj.m_Name); break; default: break; } } if (UpdateAssetCallback != null) { UpdateAssetCallback(libaryObj); } //ResLibaryMgr.Instance.UpdateLibary(libaryObj); if (iterationsPerFrame > 0 && ++iterations % iterationsPerFrame == 0) { yield return(1); } } }
LibaryExistStatusEnum ILibaryHandle.TryGetObject(LibaryTypeEnum libaryTypeEnum, string objName, out object data) { data = null; LibaryExistStatusEnum libaryExistStatusEnum = LibaryExistStatusEnum.NONE; if (!ResLibaryConfig.ExistType.ContainsKey(libaryTypeEnum)) { return(libaryExistStatusEnum); } string _type = ResLibaryConfig.ExistType[libaryTypeEnum]; switch (libaryTypeEnum) { case LibaryTypeEnum.LibaryType_Texture2D: libaryExistStatusEnum = LibaryExistStatusEnum.LibaryExistStatus_UnityEngineObject; data = ((ILibaryHandle)this).GetTextAsset(objName); break; case LibaryTypeEnum.LibaryType_TextAsset: libaryExistStatusEnum = LibaryExistStatusEnum.LibaryExistStatus_NotUnityEngineObject_TextAsset; data = ((ILibaryHandle)this).GetTexture2d(objName); break; case LibaryTypeEnum.LibaryType_AudioClip: libaryExistStatusEnum = LibaryExistStatusEnum.LibaryExistStatus_NotUnityEngineObject_NotRead_FilePath; FileStateObj fobjAudio = GetFileStateObj(_type, objName); if (fobjAudio != null) { data = fobjAudio.m_Path; } break; case LibaryTypeEnum.LibaryType_VideoClip: case LibaryTypeEnum.LibaryType_MovieTexture: libaryExistStatusEnum = LibaryExistStatusEnum.LibaryExistStatus_NotUnityEngineObject_NotRead_FilePath; FileStateObj fobjVideo = GetFileStateObj(_type, objName); if (fobjVideo != null) { data = fobjVideo.m_Path; } break; } return(libaryExistStatusEnum); }
public void UpdateLibary(string localUrl, AssetExistStatusEnum assetStatus = AssetExistStatusEnum.Quote) { FileInfo file = new FileInfo(localUrl); if (file.Exists) { string existension = file.Extension; FileStateObj fileObj = null; if (ResLibaryConfig.ResourceTxtExts.Contains(existension)) { fileObj = new FileStateObj(); fileObj.m_Path = localUrl; fileObj.m_Type = ResLibaryConfig.ExistType[LibaryTypeEnum.LibaryType_TextAsset]; if (assetStatus == AssetExistStatusEnum.Globle) { fileObj.m_Asset = ResLibaryTool.LoadFileStr(localUrl); } } else if (ResLibaryConfig.ResourceImgExts.Contains(existension)) { fileObj = new FileStateObj(); fileObj.m_Path = localUrl; fileObj.m_Type = ResLibaryConfig.ExistType[LibaryTypeEnum.LibaryType_Texture2D]; FileStateObj sfObj = new FileStateObj(); sfObj.m_Path = localUrl; sfObj.m_Type = ResLibaryConfig.ExistType[LibaryTypeEnum.LibaryType_Sprite]; if (assetStatus == AssetExistStatusEnum.Globle) { Texture2D tex2d = ResLibaryTool.readLocalTexture2d(localUrl); fileObj.m_Asset = tex2d; sfObj.m_Asset = Sprite.Create(tex2d, new Rect(0, 0, tex2d.width, tex2d.height), Vector2.zero); } string fullFileName = System.IO.Path.GetFileName(localUrl); //int position = fullFileName.LastIndexOf("."); string fileName = System.IO.Path.GetFileNameWithoutExtension(localUrl);//fullFileName.Substring(0, position - 1); sfObj.m_Name = fileName; if (!resourceDict.ContainsKey(sfObj.m_Type)) { resourceDict[sfObj.m_Type] = new Dictionary <string, FileStateObj>(); } Dictionary <string, FileStateObj> dict = resourceDict[sfObj.m_Type]; dict[sfObj.m_Name] = sfObj; LibaryStateObj libaryObj = new LibaryStateObj(); libaryObj.m_Name = sfObj.m_Name; libaryObj.m_Status = LibaryStatusEnum.DIR_FILE; libaryObj.m_Type = sfObj.m_Type; libaryObj.m_Path = localUrl; if (UpdateAssetCallback != null) { UpdateAssetCallback(libaryObj); } //ResLibaryMgr.Instance.UpdateLibary(libaryObj); } else if (ResLibaryConfig.ResourceVideoExts.Contains(existension)) { fileObj = new FileStateObj(); fileObj.m_Path = localUrl; fileObj.m_Type = ResLibaryConfig.ExistType[LibaryTypeEnum.LibaryType_VideoClip]; fileObj.m_Asset = localUrl; } else if (ResLibaryConfig.ResourceAudioExts.Contains(existension)) { fileObj = new FileStateObj(); fileObj.m_Path = localUrl; fileObj.m_Type = ResLibaryConfig.ExistType[LibaryTypeEnum.LibaryType_AudioClip]; fileObj.m_Asset = localUrl; } if (fileObj != null) { string fullFileName = System.IO.Path.GetFileName(localUrl); //int position = fullFileName.LastIndexOf("."); string fileName = System.IO.Path.GetFileNameWithoutExtension(localUrl);//fullFileName.Substring(0, position - 1); fileObj.m_Name = fileName; if (!resourceDict.ContainsKey(fileObj.m_Type)) { resourceDict[fileObj.m_Type] = new Dictionary <string, FileStateObj>(); } Dictionary <string, FileStateObj> dict = resourceDict[fileObj.m_Type]; dict[fileObj.m_Name] = fileObj; LibaryStateObj libaryObj = new LibaryStateObj(); libaryObj.m_Name = fileObj.m_Name; libaryObj.m_Status = LibaryStatusEnum.DIR_FILE; libaryObj.m_Type = fileObj.m_Type; libaryObj.m_Path = localUrl; if (UpdateAssetCallback != null) { UpdateAssetCallback(libaryObj); } //ResLibaryMgr.Instance.UpdateLibary(libaryObj); } } }