/// <summary> /// Requests the asset bundle. /// </summary> /// <returns>The asset bundle.</returns> /// <param name="path">Path.</param> /// <param name="arg">Argument.</param> public ResourceRequireOwner RequestAssetBundle(string path, long utime) { ResourceRequireOwner owner = ResourceMgr.RequestResouce( path, true, utime, true, RESOURCE_TYPE.WEB_ASSETBUNLDE, ENCRYPT_TYPE.NORMAL, null, this.m_delErrorCallback, null); this.m_lstOwner.Add(owner); return(owner); }
//===================================== texture =================================== /// <summary> /// Requests the texture. /// </summary> /// <returns>The texture.</returns> /// <param name="path">Path.</param> public ResourceRequireOwner RequestTexture(string path) { ResourceRequireOwner owner = ResourceMgr.RequestResouce( path, false, 0, true, RESOURCE_TYPE.WEB_TEXTURE, ENCRYPT_TYPE.NORMAL, null, this.m_delErrorCallback, null); this.m_lstOwner.Add(owner); return(owner); }
/// <summary> /// Requests the audio clip. /// </summary> /// <returns>The audio clip.</returns> /// <param name="path">Path.</param> /// <param name="utime">Utime.</param> public ResourceRequireOwner RequestAudioClip(string path, long utime) { ResourceRequireOwner owner = ResourceMgr.RequestResouce( path, true, utime, true, RESOURCE_TYPE.WEB_AUDIOCLIP, ENCRYPT_TYPE.NORMAL, null, this.m_delErrorCallback, null ); this.m_lstOwner.Add(owner); return(owner); }
/// <summary> /// Requests the text bytes. /// </summary> /// <returns>The text bytes.</returns> /// <param name="path">Path.</param> /// <param name="utime">Utime.</param> public ResourceRequireOwner RequestTextBytes(string path, long utime) { ResourceRequireOwner owner = ResourceMgr.RequestResouce( path, true, utime, true, RESOURCE_TYPE.WEB_TEXT_BYTES, ENCRYPT_TYPE.NORMAL, null, this.m_delErrorCallback, null ); this.m_lstOwner.Add(owner); return(owner); }
//===================================== Resource =================================== public ResourceRequireOwner RequestPrefab(string path) { ResourceRequireOwner owner = new ResourceRequireOwner(); owner.m_bComplete = true; owner.m_cResName = path; owner.m_eResType = RESOURCE_TYPE.PREFAB; owner.m_cAsset = Resources.Load(path); this.m_lstOwner.Add(owner); return(owner); }
/// <summary> /// 删除资源资源需求 /// </summary> /// <param name="name"></param> /// <param name="owner"></param> public static void UnloadResource(string name, ResourceRequireOwner owner) { if (sInstance.m_mapRes.ContainsKey(name)) { sInstance.m_mapRes[name].RemoveRequireOwner(owner); //倘若资源需求为空 if (sInstance.m_mapRes[name].IsOwnerEmpty()) { //如果可以卸载 或者 加载未完成则卸载资源 if (CanUnload(name) || !sInstance.m_mapRes[name].Complete) { sInstance.m_mapRes[name].Destory(false); sInstance.m_lstRequires.Remove(sInstance.m_mapRes[name]); sInstance.m_mapRes.Remove(name); Resources.UnloadUnusedAssets(); } } } else { Debug.LogError("Has not resource " + name); } }
//===================================== Resource =================================== public ResourceRequireOwner RequestPrefab( string path ) { ResourceRequireOwner owner = new ResourceRequireOwner(); owner.m_bComplete = true; owner.m_cResName = path; owner.m_eResType = RESOURCE_TYPE.PREFAB; owner.m_cAsset = Resources.Load(path); this.m_lstOwner.Add(owner); return owner; }
/// <summary> /// Requests the resouce. /// </summary> /// <returns>The resouce.</returns> /// <param name="path">Path.</param> /// <param name="crc">Crc.</param> /// <param name="version">Version.</param> /// <param name="autoSave">If set to <c>true</c> auto save.</param> /// <param name="utime">Utime.</param> /// <param name="autoClear">If set to <c>true</c> auto clear.</param> /// <param name="resType">Res type.</param> /// <param name="encrypt_type">Encrypt_type.</param> /// <param name="func">Func.</param> /// <param name="error_call">Error_call.</param> /// <param name="arg">Argument.</param> public static ResourceRequireOwner RequestResouce( string path, bool autoSave, long utime, bool autoClear, RESOURCE_TYPE resType, ENCRYPT_TYPE encrypt_type, REQUEST_FINISH_CALLBACK func, REQUEST_ERROR_CALLBACK error_call, object[] arg ) { if (sInstance.m_delDecryptFunc == null && encrypt_type == ENCRYPT_TYPE.ENCRYPT) { // Error // 没有资源解密接口 return(null); } string resName = (new Uri(path)).AbsolutePath; ResourceRequireOwner owner = new ResourceRequireOwner(); owner.m_cResName = resName; // owner.m_strResValue = resValue; owner.m_delCallBack = func; owner.m_delErrorCall = error_call; owner.m_eResType = resType; owner.m_vecArg = arg; if (sInstance.m_eLoadType != LOAD_TYPE.NORMAL) { UnityEngine.Object obj = LoadEditor(resName); if (!sInstance.m_mapRes.ContainsKey(resName)) { object resData = null; switch (resType) { case RESOURCE_TYPE.WEB_ASSETBUNLDE: case RESOURCE_TYPE.WEB_TEXTURE: resData = obj; break; case RESOURCE_TYPE.WEB_TEXT_BYTES: resData = (obj as TextAsset).bytes; break; case RESOURCE_TYPE.WEB_TEXT_STR: resData = (obj as TextAsset).text; break; } ResourceRequireData data = new ResourceRequireData(resData); sInstance.m_mapRes.Add(resName, data); } sInstance.m_mapRes[resName].AddRequireOwner(owner); sInstance.m_mapRes[resName].Used(); if (sInstance.m_mapRes[resName].Complete) { sInstance.m_mapRes[resName].CompleteCallBack(); } return(owner); } if (sInstance.m_mapRes.ContainsKey(resName)) { //增加需求者 sInstance.m_mapRes[resName].AddRequireOwner(owner); sInstance.m_mapRes[resName].Used(); if (sInstance.m_mapRes[resName].Complete) { sInstance.m_mapRes[resName].CompleteCallBack(); } } else { ResourceRequireData rrd = new ResourceRequireData( path, autoSave, utime, autoClear, resType, encrypt_type, sInstance.m_delDecryptFunc); sInstance.m_lstRequires.Add(rrd); sInstance.m_mapRes.Add(resName, rrd); rrd.AddRequireOwner(owner); } return(owner); }
/// <summary> /// Requests the resouce. /// </summary> /// <returns>The resouce.</returns> /// <param name="path">Path.</param> /// <param name="autoSave">If set to <c>true</c> auto save.</param> /// <param name="utime">Utime.</param> /// <param name="autoClear">If set to <c>true</c> auto clear.</param> /// <param name="resType">Res type.</param> /// <param name="encrypt_type">Encrypt_type.</param> /// <param name="func">Func.</param> /// <param name="error_call">Error_call.</param> /// <param name="arg">Argument.</param> public static ResourceRequireOwner RequestResouce( string path , bool autoSave , long utime , bool autoClear , RESOURCE_TYPE resType, ENCRYPT_TYPE encrypt_type, REQUEST_FINISH_CALLBACK func , REQUEST_ERROR_CALLBACK error_call,object[] arg ) { if (sInstance.m_delDecryptFunc == null && encrypt_type == ENCRYPT_TYPE.ENCRYPT ) { // Error // 没有资源解密接口 return null; } string resName = (new Uri(path)).AbsolutePath; ResourceRequireOwner owner = new ResourceRequireOwner(); owner.m_cResName = resName; // owner.m_strResValue = resValue; owner.m_delCallBack = func; owner.m_delErrorCall = error_call; owner.m_eResType = resType; owner.m_vecArg = arg; if ( sInstance.m_eLoadType != LOAD_TYPE.NORMAL ) { UnityEngine.Object obj = LoadEditor(resName); if (!sInstance.m_mapRes.ContainsKey(resName)) { object resData = null; switch( resType ) { case RESOURCE_TYPE.WEB_ASSETBUNLDE: case RESOURCE_TYPE.WEB_TEXTURE: resData = obj; break; case RESOURCE_TYPE.WEB_TEXT_BYTES: resData = (obj as TextAsset).bytes; break; case RESOURCE_TYPE.WEB_TEXT_STR: resData = (obj as TextAsset).text; break; } ResourceRequireData data = new ResourceRequireData(resData); sInstance.m_mapRes.Add(resName, data); } sInstance.m_mapRes[resName].AddRequireOwner(owner); sInstance.m_mapRes[resName].Used(); if(sInstance.m_mapRes[resName].Complete) { sInstance.m_mapRes[resName].CompleteCallBack(); } return owner; } if (sInstance.m_mapRes.ContainsKey(resName)) { //增加需求者 sInstance.m_mapRes[resName].AddRequireOwner(owner); sInstance.m_mapRes[resName].Used(); if (sInstance.m_mapRes[resName].Complete) { sInstance.m_mapRes[resName].CompleteCallBack(); } } else { ResourceRequireData rrd = new ResourceRequireData( path , autoSave ,utime ,autoClear, resType, encrypt_type, sInstance.m_delDecryptFunc); sInstance.m_lstRequires.Add(rrd); sInstance.m_mapRes.Add(resName, rrd); rrd.AddRequireOwner(owner); } return owner; }
/// <summary> /// 增加资源需求者 /// </summary> /// <param name="owner"></param> public bool AddRequireOwner(ResourceRequireOwner owner) { this.m_lstOwners.Add(owner); return true; }
/// <summary> /// 删除需求者 /// </summary> /// <param name="owner"></param> /// <returns></returns> public bool RemoveRequireOwner(ResourceRequireOwner owner) { return this.m_lstOwners.Remove(owner); }
/// <summary> /// 删除需求者 /// </summary> /// <param name="owner"></param> /// <returns></returns> public bool RemoveRequireOwner(ResourceRequireOwner owner) { return(this.m_lstOwners.Remove(owner)); }
/// <summary> /// 增加资源需求者 /// </summary> /// <param name="owner"></param> public bool AddRequireOwner(ResourceRequireOwner owner) { this.m_lstOwners.Add(owner); return(true); }