private void dependsHandle(EventX e) { QueueLoader queueLoader = e.target as QueueLoader;; queueLoader.removeEventListener(EventX.COMPLETE, dependsHandle); queueLoader.removeEventListener(EventX.PROGRESS, progressHandle); base._loadImp(0, isProgress); }
public static void Recycle(QueueLoader value) { value.recycle(); if (queueLoaderPool.Count < 100) { queueLoaderPool.Push(value); return; } }
private void manifesHandle(EventX e) { AssetResource resource = e.target as AssetResource; resource.removeEventListener(EventX.PROGRESS, progressHandle); AssetsManager.bindEventHandle(resource, manifesHandle, false); if (e.type != EventX.COMPLETE) { _data = null; resourceComplete(e.type); return; } QueueLoader queueLoader = new QueueLoader(); queueLoader.retryCount = 3; queueLoader.addEventListener(EventX.COMPLETE, dependsHandle); if (isProgress) { queueLoader.addEventListener(EventX.PROGRESS, progressHandle); } assetBundleManifest = resource.data as AssetBundleManifest; string[] dependencies = assetBundleManifest.GetAllDependencies(dependKey); //Hash128 hash = assetBundleManifest.GetAssetBundleHash(dependKey); string hashValue = null; string hashKey = null; AssetResource tempResource; foreach (string dependency in dependencies) { string url = manifesPrefix + dependency; string uri = manifesKey + "/" + dependency; //Debug.Log(dependency); hashValue = assetBundleManifest.GetAssetBundleHash(dependency).ToString(); hashKey = manifesKey + "_" + hashValue; if (resourceHash128Maping.TryGetValue(hashKey, out tempResource) == false) { tempResource = AssetsManager.getResource(url, uri, LoaderXDataType.ASSETBUNDLE); resourceHash128Maping.Add(hashKey, tempResource); } /*else if (url != tempResource.url) * { * Debug.Log("redirect:" + url + " to:" + tempResource.url); * }*/ tempResource.retain(); queueLoader.add(tempResource); } queueLoader.start(); }