/// <summary> /// stop the url. /// </summary> /// <param name="req">Req.</param> /// <param name="group">Group.</param> public void StopURL(string url) { LRequest reqUrl = LRequest.Get(); reqUrl.relativeUrl = url; StopReq(reqUrl); LRequest.Release(reqUrl); }
static public int get_onCompleteFn(IntPtr l) { try { Hugula.Loader.LRequest self = (Hugula.Loader.LRequest)checkSelf(l); pushValue(l, true); pushValue(l, self.onCompleteFn); return(2); } catch (Exception e) { return(error(l, e)); } }
static public int Dispose(IntPtr l) { try { Hugula.Loader.LRequest self = (Hugula.Loader.LRequest)checkSelf(l); self.Dispose(); pushValue(l, true); return(1); } catch (Exception e) { return(error(l, e)); } }
static public int set_onEndFn(IntPtr l) { try { Hugula.Loader.LRequest self = (Hugula.Loader.LRequest)checkSelf(l); SLua.LuaFunction v; checkType(l, 2, out v); self.onEndFn = v; pushValue(l, true); return(1); } catch (Exception e) { return(error(l, e)); } }
static void PopGroup(CRequest req) { GroupRequestRecord group; if (currGroupRequestsRef.TryGetValue(req, out group)) { currGroupRequestsRef.Remove(req); group.Complete(req); } if (req.pool) { LRequest.Release(req); } }
/// <summary> /// dispatch request complete event /// </summary> /// <param name="req"></param> private static void DispatchReqComplete(CRequest reqitem) { if (reqitem.isShared) { CacheManager.SetAssetLoaded(reqitem.keyHashCode); if (_instance && _instance.OnSharedComplete != null) { _instance.OnSharedComplete(reqitem); } if (reqitem.pool) { LRequest.Release(reqitem); } } else { reqitem.DispatchComplete(); PopGroup(reqitem); } }
static public int constructor(IntPtr l) { try { int argc = LuaDLL.lua_gettop(l); Hugula.Loader.LRequest o; if (argc == 1) { o = new Hugula.Loader.LRequest(); pushValue(l, true); pushValue(l, o); return(2); } else if (argc == 2) { System.String a1; checkType(l, 2, out a1); o = new Hugula.Loader.LRequest(a1); pushValue(l, true); pushValue(l, o); return(2); } else if (argc == 4) { System.String a1; checkType(l, 2, out a1); System.String a2; checkType(l, 3, out a2); System.Type a3; checkType(l, 4, out a3); o = new Hugula.Loader.LRequest(a1, a2, a3); pushValue(l, true); pushValue(l, o); return(2); } return(error(l, "New object failed.")); } catch (Exception e) { return(error(l, e)); } }
public void StopLoad() { if (isFree && !enabled) { enabled = false; isFree = true; if (www != null) { www.Dispose(); www = null; } if (abRequest != null) { abRequest = null; } if (this.req != null && req.pool) { LRequest.Release(req); } this._req = null; } }
/// <summary> /// 加载依赖项目 /// </summary> /// <param name="req"></param> static protected int[] LoadDependencies(CRequest req) { string[] deps = assetBundleManifest.GetDirectDependencies(req.assetBundleName); if (deps.Length == 0) { return(null); } string dep_url; string depAbName = ""; CRequest item; int[] hashs = new int[deps.Length]; int keyhash; for (int i = 0; i < deps.Length; i++) { depAbName = deps[i]; if (string.IsNullOrEmpty(depAbName)) // Dependency assetbundle name is empty unity bug? { #if UNITY_EDITOR Debug.LogWarningFormat("the request({0},{1}) Dependencies {2} is empty ", req.assetName, req.url, i); #endif hashs[i] = 0; continue; } dep_url = RemapVariantName(depAbName); keyhash = LuaHelper.StringToHash(dep_url); hashs[i] = keyhash; #if UNITY_EDITOR CountMananger.WillAdd(dep_url); //引用数量加1 #else CountMananger.WillAdd(keyhash); //引用数量加1 #endif CacheData sharedCD = CacheManager.GetCache(keyhash); if (sharedCD != null) { if (!sharedCD.isAssetLoaded) { item = LRequest.Get(); item.relativeUrl = dep_url; item.isShared = true; item.async = false; item.isAssetBundle = true; CacheManager.SetRequestDataFromCache(req); if (_instance && _instance.OnSharedComplete != null) { _instance.OnSharedComplete(item); } LRequest.Release(item); } #if HUGULA_LOADER_DEBUG Debug.LogFormat(" 0.3 <color=#15A0A1>Request(assetName={0}, url={1},isShared={2}) Dependencies CacheManager.Contains(url={3},sharedCD.isAssetLoaded={4}) </color>", req.assetName, req.url, req.isShared, dep_url, sharedCD.isAssetLoaded); #endif } else { item = LRequest.Get(); item.relativeUrl = dep_url; item.isShared = true; item.async = false; item.isAssetBundle = true; item.allDependencies = LoadDependencies(item); item.isNormal = false; item.priority = req.priority; item.uris = req.uris; #if HUGULA_LOADER_DEBUG Debug.LogFormat("<color=#15A0A1>0.5 Request(assetname={0}) Begin Load Dependencies Req({1},allDependencies.count={3})keyHashCode{2}, frameCount{4}</color>", req.assetName, item.assetName, item.keyHashCode, item.allDependencies == null ? 0 : item.allDependencies.Length, Time.frameCount); #endif AddReqToQueue(item); } } return(hashs); }
private static void m_ActionOnRelease(LRequest req) { req.Dispose(); }
private static void m_ActionOnGet(LRequest req) { req.pool = true; req.BindAction(); }