private IEnumerator HttpGet(NetImageRequestObj netImageRequestObj, Action <WWW, NetImageRequestObj> callbackSucceed) { bool isGetData = false; int count = 0; do { WWW www = new WWW(netImageRequestObj.netImageData.url); DateTime date1 = DateTime.Now; while ((DateTime.Now - date1).TotalSeconds <= 10) { yield return(new WaitForSeconds(0.1f)); if (www.isDone) { Debug.Log("获取网络图片成功! " + netImageRequestObj.netImageData.url); if (string.IsNullOrEmpty(www.error) && callbackSucceed != null) { callbackSucceed(www, netImageRequestObj); } isGetData = true; break; } } www.Dispose(); if (isGetData == false) { Debug.LogError("请求图片超过10秒钟:要销毁该www了,并重新请求网络图片!"); count++; } } while (isGetData == false && count < 2); }
public void ProcessSetImage(NetImageRequestObj netImageRequestObj) { NetImageRequestObj netImageRequestObj2 = new NetImageRequestObj(); IESetImageRequestObj reqObj = new IESetImageRequestObj(); if (netImageRequestObj.useScaleId == 0) { netImageRequestObj.netImageData.getSprite(); netImageRequestObj2.Copy(netImageRequestObj); reqObj.action = netImageRequestObj2.SetComponentSprite; } else if (netImageRequestObj.useScaleId == 1) { netImageRequestObj.netImageData.getSprite_GridScale(); netImageRequestObj2.Copy(netImageRequestObj); reqObj.action = netImageRequestObj2.SetComponentSprite_GridSprite; } netImageRequestObj.ieSetImgReqObj = reqObj; netImageRequestObj2.ieSetImgReqObj = reqObj; IESetImageMgr.getInstance().AddSetImageInQueue("everyAsset", reqObj); }
private IEnumerator LoadImage(NetImageRequestObj netImageRequestObj) { yield return(this.HttpGet(netImageRequestObj, OnLoadNetImageSucceed)); isProcess = false; NetImageMgr.getInstance().ProcessNextOne(); }
public void Copy(NetImageRequestObj netImageRequestObj) { this.imageComponent = netImageRequestObj.imageComponent; this.rawImageComponent = netImageRequestObj.rawImageComponent; this.useScaleId = netImageRequestObj.useScaleId; this.netImageData = new NetImageData(); this.netImageData.Copy(netImageRequestObj.netImageData); this.netImageProcessType = netImageRequestObj.netImageProcessType; }
public int GetObjIndex(NetImageRequestObj reqObj) { for (int i = 0; i < lisObj.Count; i++) { if (lisObj[i].reqId == reqObj.reqId) { return(i); } } return(-1); }
private void OnLoadNetImageSucceed(WWW www, NetImageRequestObj netImageRequestObj) { Texture2D tex = www.texture; netImageRequestObj.netImageData.texture2D = tex; NetImageMgr.getInstance().AddNetImageData(netImageRequestObj.netImageData); if (netImageRequestObj.netImageProcessType != ProcessType.Abort) { netImageRequestObj.netImageProcessType = ProcessType.Processed; NetImageMgr.getInstance().ProcessSetImage(netImageRequestObj); } }
public void StartGetOne(NetImageRequestObj netImageRequestObj, int useScaleID = 0) { if (dicNetImage.ContainsKey(netImageRequestObj.netImageData.url)) { netImageRequestObj.netImageData = dicNetImage[netImageRequestObj.netImageData.url]; netImageRequestObj.netImageProcessType = ProcessType.Processed; ProcessSetImage(netImageRequestObj); } else { lisObj.Add(netImageRequestObj); ProcessNextOne(); } }
public void AbortObj(NetImageRequestObj reqObj) { if (reqObj == null) { return; } int index = GetObjIndex(reqObj); if (index >= 0) { lisObj[index].netImageProcessType = ProcessType.NoProcess; lisObj.RemoveAt(index); Debug.Log("Abort--------------------" + reqObj.reqId); } }
/// <summary> /// 开始获取一个网络图片 并自动设置图片 自动分配加载图片队列reqid /// </summary> public NetImageRequestObj StartGetOne(string url, Image imageComponent1, int useScaleID = 0) { NetImageRequestObj reqObj = new NetImageRequestObj() { reqId = GetOneReqId(), imageComponent = imageComponent1, netImageData = new NetImageData() { url = url }, useScaleId = useScaleID, netImageProcessType = ProcessType.NoProcess }; StartGetOne(reqObj); return(reqObj); }
public override void RefreshCellView() { if (active == false) { return; } if (requestObj != null) { requestObj.Abort(); } requestObj = null; string path = mData.toOtherType <ImgCellData>().imgPath; titleImage.texture = defaultTexture; requestObj = NetImageMgr.getInstance().StartGetOne(path, titleImage, 1); }
public void StartLoadImage(NetImageRequestObj netImageRequestObj) { isProcess = true; netImageRequestObj.netImageProcessType = ProcessType.Processing; netImageMono.StartCoroutine(LoadImage(netImageRequestObj)); }