public void SetWork(CoroutineWork work) { if (!_Started) { _Inner = work; } }
public void AddWork(CoroutineWork work) { if (!_Started && work != null) { _Works.Add(work); } }
private static IEnumerator LoadFromResourceWork(CoroutineWork req, string name, Type type) { if (req.Result != null) { yield break; } while (AsyncWorkTimer.Check()) { yield return(null); } if (!string.IsNullOrEmpty(name)) { var ext = System.IO.Path.GetExtension(name); name = name.Substring(0, name.Length - ext.Length); string[] distributeFlags = GetValidDistributeFlags(); if (distributeFlags != null) { for (int i = distributeFlags.Length - 1; i >= 0; --i) { while (AsyncWorkTimer.Check()) { yield return(null); } var flag = distributeFlags[i]; ResourceRequest rawreq = null; if (type == null) { try { rawreq = Resources.LoadAsync("dist/" + flag + "/" + name); } catch (Exception e) { PlatDependant.LogError(e); } } else { try { rawreq = Resources.LoadAsync("dist/" + flag + "/" + name, type); } catch (Exception e) { PlatDependant.LogError(e); } } if (rawreq != null) { yield return(rawreq); if (rawreq.asset != null) { req.Result = rawreq.asset; if (type == null && rawreq.asset is Texture2D) { rawreq = null; try { rawreq = Resources.LoadAsync("dist/" + flag + "/" + name, typeof(Sprite)); } catch (Exception e) { PlatDependant.LogError(e); } if (rawreq != null) { yield return(rawreq); if (rawreq.asset != null) { req.Result = rawreq.asset; } } } yield break; } } } } { while (AsyncWorkTimer.Check()) { yield return(null); } ResourceRequest rawreq = null; if (type == null) { try { rawreq = Resources.LoadAsync(name); } catch (Exception e) { PlatDependant.LogError(e); } } else { try { rawreq = Resources.LoadAsync(name, type); } catch (Exception e) { PlatDependant.LogError(e); } } if (rawreq != null) { yield return(rawreq); if (rawreq.asset != null) { req.Result = rawreq.asset; if (type == null && rawreq.asset is Texture2D) { rawreq = null; try { rawreq = Resources.LoadAsync(name, typeof(Sprite)); } catch (Exception e) { PlatDependant.LogError(e); } if (rawreq != null) { yield return(rawreq); if (rawreq.asset != null) { req.Result = rawreq.asset; } } } yield break; } } } } }
public void SetWork(CoroutineWork work) { _Inner = work; }