public static AssetBundleWarehouse CreateWarehouse(AssetBundleWarehouseAddr addr, bool isLow) { AssetBundleWarehouse ret = null; switch (addr.Pattern) { case AssetBundleLoadingPattern.Simulation: ret = new SimulationWarehouse(addr, isLow); break; case AssetBundleLoadingPattern.AsyncLocal: ret = new AsyncLocalWarehouse(addr, isLow); break; case AssetBundleLoadingPattern.AsyncWeb: ret = new AsyncWebWarehouse(addr, isLow); break; case AssetBundleLoadingPattern.Sync: ret = new SyncWarehouse(addr, isLow); break; case AssetBundleLoadingPattern.EndOfTheWorld: throw new ArgumentException("AssetBundleLoadingPattern.EndOfTheWorld"); } return(ret); }
//For Test Purpose. public IEnumerator InitWarehouse(AssetBundleWarehouseAddr defaultWarehouseAddr, List <SupplementaryWarehouse> supplementaryWarehouses = null, bool isLow = false, string useMD5 = null) { if (!_isWareHouseConfig) { _bundlePool.SetDefaultWarehouse(defaultWarehouseAddr); if (supplementaryWarehouses != null) { foreach (var supplementaryWarehouse in supplementaryWarehouses) { _bundlePool.SetSupplementaryWarehouse(supplementaryWarehouse.WarehouseAddr, supplementaryWarehouse.Bundles); } } yield return(_bundlePool.Init(isLow, useMD5)); _isWareHouseConfig = true; //yield return _bundlePool.Init(/*"Low"*/SettingManager.SettingManager.GetInstance().GetQualityBeforeInit().ToString()); _isInitialized = true; } else { _logger.WarnFormat("The warehouse for asset loader has been configured!"); } }
public void SetSupplementaryWarehouse(AssetBundleWarehouseAddr addr, string[] bundles) { if (addr == null || bundles == null) { throw new ArgumentNullException(); } if (addr.Pattern == AssetBundleLoadingPattern.EndOfTheWorld || addr.Pattern != AssetBundleLoadingPattern.Simulation && string.IsNullOrEmpty(addr.Path)) { throw new ArgumentException(addr.ToString()); } if (bundles.Length == 0) { throw new ArgumentException("bundles.Length equals zero"); } for (var i = 0; i < bundles.Length; i++) { if (_supplementaryBundles.Contains(bundles[i])) { throw new ArgumentException("duplicate supplementary bundle: " + bundles[i]); } _supplementaryBundles.Add(bundles[i]); } if (string.IsNullOrEmpty(addr.Manifest)) { addr.Manifest = Utility.GetPlatformName(); } addr.Path = Utility.ProcessAssetBundleBasePath(addr.Path); if (!_supplementaryWarehouseAddr.ContainsKey(addr)) { _supplementaryWarehouseAddr.Add(addr, new List <string>()); } _supplementaryWarehouseAddr[addr].AddRange(bundles); }
private IEnumerator Init(ResourceConfig config, bool isLow, string useMD5 = null) { var defaultWarehouseAddr = new AssetBundleWarehouseAddr() { Path = config.BaseUrl, Pattern = config.BasePattern, Manifest = config.Manifests, }; var supplementaryWarehouses = new List <SupplementaryWarehouse>(); var supplements = config.Supplement; if (supplements != null) { foreach (var supplement in supplements) { #if !UNITY_EDITOR if (supplement.Pattern == AssetBundleLoadingPattern.Simulation) { continue; } #endif if (supplement.BundleName != null && supplement.Pattern != null) { supplementaryWarehouses.Add(new SupplementaryWarehouse() { WarehouseAddr = new AssetBundleWarehouseAddr() { Path = supplement.Url, Pattern = supplement.Pattern, Manifest = supplement.Manifests }, Bundles = new string[] { supplement.BundleName }, }); } } } yield return(InitWarehouse(defaultWarehouseAddr, supplementaryWarehouses, isLow, useMD5)); }
public void SetDefaultWarehouse(AssetBundleWarehouseAddr addr) { if (addr == null) { throw new ArgumentNullException(); } if (addr.Pattern == AssetBundleLoadingPattern.EndOfTheWorld || addr.Pattern != AssetBundleLoadingPattern.Simulation && string.IsNullOrEmpty(addr.Path)) { throw new ArgumentException(addr.ToString()); } if (string.IsNullOrEmpty(addr.Manifest)) { addr.Manifest = Utility.GetPlatformName(); } addr.Path = Utility.ProcessAssetBundleBasePath(addr.Path); _defaultWarehouseAddr = addr; }