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