public void AddRequester(AssetLoader.ObjectCallback callback, AssetLoader.OnDownloading onDownloading, object callbackData) { AssetCache.ObjectRequester item = new AssetCache.ObjectRequester { m_callback = callback, MOnDownloading = onDownloading, m_callbackData = callbackData }; this.m_requesters.Add(item); }
public override void OnProgressUpdate(string name, float progress) { foreach (AssetCache.ObjectRequester current in this.m_requesters) { AssetLoader.OnDownloading mOnDownloading = current.MOnDownloading; if (mOnDownloading != null) { mOnDownloading(name, progress, current.m_callbackData); } } }
public void DownloadBindata(AssetLoader.CompleteCallback2 completeCallback, AssetLoader.OnDownloading onDownloading, object callbackData) { new Task(this.DownLoadBindata2(completeCallback, onDownloading, callbackData), true); }
private IEnumerator DownLoadBindata2(AssetLoader.CompleteCallback2 completeCallback, AssetLoader.OnDownloading onDownloading, object callbackData) { AssetLoader.< DownLoadBindata2 > c__Iterator10 <DownLoadBindata2> c__Iterator = new AssetLoader.< DownLoadBindata2 > c__Iterator10();
private UnityEngine.Object LoadBundle(string family, string bundlePathName, string assetName, bool persistent, AssetLoader.ObjectCallback callback, AssetLoader.OnDownloading onDownloading, object callbackData) { if (string.IsNullOrEmpty(assetName)) { return(null); } long num = TimeUtils.BinaryStamp(); Asset asset = Asset.Create(assetName, family, persistent, false, false); AssetCache.CachedAsset cachedAsset = new AssetCache.CachedAsset(); AssetCache.ObjectCacheRequest objectCacheRequest; if (!AssetCache.HasRequest(asset)) { objectCacheRequest = new AssetCache.ObjectCacheRequest(); AssetCache.AddRequest(asset, objectCacheRequest); } else { objectCacheRequest = AssetCache.GetRequest <AssetCache.ObjectCacheRequest>(asset); } objectCacheRequest.AddRequester(callback, onDownloading, callbackData); AssetCache.StartLoading(asset.Family.ToString()); if (AssetCache.HasItem(asset)) { cachedAsset = AssetCache.Find(asset); cachedAsset.LastRequestTimestamp = num; asset = cachedAsset.GetAsset(); } else if (this.m_assetBundleDict.ContainsKey(asset.Family) && this.m_assetBundleDict[asset.Family] != null) { if (!this.m_assetBundleDict[asset.Family].Contains(asset.Name)) { return(null); } UnityEngine.Object assetObject = this.m_assetBundleDict[family].Load(assetName, AssetBundleInfo.FamilyInfo[family].TypeOf); cachedAsset.SetAsset(asset); cachedAsset.SetAssetObject(assetObject); cachedAsset.CreatedTimestamp = num; cachedAsset.LastRequestTimestamp = num; AssetCache.Add(asset, cachedAsset); } else if (AssetCache.CanLoadBundle(asset.Family)) { this.LoadBundleFromDisk(asset, objectCacheRequest, cachedAsset); } if (cachedAsset.GetAssetObject() != null) { objectCacheRequest.OnProgressUpdate(assetName, 1f); objectCacheRequest.OnLoadSucceed(); objectCacheRequest.OnLoadComplete(assetName, cachedAsset.GetAssetObject()); AssetCache.RemoveRequest(asset); AssetCache.StopLoading(assetName); } return(cachedAsset.GetAssetObject()); }