/// <summary> /// 加载资源 /// </summary> /// <param name="proxy"></param> public void LoadAsset(AssetDataProxy proxy) { if (proxy == null) { return; } proxy.Data = GetAsset(proxy.Url); if (proxy.Data.IsLoaded) { proxy.AssetComplete(); return; } Loader.Load(proxy); }
/// <summary> /// 进入下载状态 /// </summary> /// <returns></returns> protected override IEnumerator OnLoading() { AssetDataProxy proxy = GetLoadProxy(); if (proxy == null) { yield break; } // 正在加载 if (proxy.Data.IsLoading) { while (!proxy.IsAbort && proxy.Data.IsLoading) { yield return(1); } if (proxy.IsAbort) { yield break; } proxy.AssetComplete(); yield break; } // 排队等待 while (!HasAccess && !proxy.IsAbort) { yield return(1); } if (proxy.IsAbort) { yield break; } // 再次检测 if (proxy.Data.IsLoading) { while (!proxy.IsAbort && proxy.Data.IsLoading) { yield return(1); } if (proxy.IsAbort) { yield break; } proxy.AssetComplete(); yield break; } // 加载完成 if (proxy.Data.IsLoaded) { proxy.AssetComplete(); yield break; } // 开始加载 IncreaseLoadingWork(); CoroutineUtil.StartCoroutine(OnDownload(proxy)); DecreaseLoadingWork(); proxy.AssetComplete(); }