private IEnumerator CacheInternal(string id, ResCategory cat, Action <string> OnCached, Action <string, string, string> OnError, CacheOption options, Type[] typeF, IAsyncProgress prog) { _inLoading.Add(id); WWW l = new WWW(ConvertToUrl(id)); prog.Next(l); yield return(l); if (l.error != null) { if (OnError != null) { OnError(id, l.url, l.error); } else { DefaultOnError(id, l.url, l.error); } } PostProcessByCategory(id, l, cat, typeF); if (options > CacheOption._Ignorable) { OptionalPostProcess(id, cat, options); } if (OnCached != null) { OnCached(id); } _inLoading.Remove(id); }