private AssetBundleStatus LoadAssetBundle(string bundleName, AssetBundleWarehouse defaultWarehouse, out AssetBundleLoading operation, out string nameWithVariant, out AssetBundleWarehouse preferedWarehouse) { preferedWarehouse = FindWarehouse(bundleName, defaultWarehouse); nameWithVariant = preferedWarehouse.RemapBundleName(bundleName); if (_loadedAssetBundles.ContainsKey(nameWithVariant)) { operation = null; return(AssetBundleStatus.Loaded); } if (_loadingAssetBundleNames.Contains(nameWithVariant)) { operation = null; return(AssetBundleStatus.Loading); } if (_failedAssetBundleNames.Contains(nameWithVariant)) { operation = null; return(AssetBundleStatus.Failed); } _logger.InfoFormat("LoadAssetBundle :{0}", nameWithVariant); _loadingAssetBundleNames.Add(nameWithVariant); operation = preferedWarehouse.LoadAssetBundle(nameWithVariant); _loadingAssetBundles.AddLast(operation); return(AssetBundleStatus.Blank); }
private AssetBundleStatus LoadAssetBundle(string bundleName, AssetBundleWarehouse defaultWarehouse, out AssetBundleLoading operation, out string nameWithVariant, out AssetBundleWarehouse preferedWarehouse) { if (string.IsNullOrEmpty(bundleName)) { operation = null; preferedWarehouse = null; nameWithVariant = bundleName; return(AssetBundleStatus.Failed); } preferedWarehouse = FindWarehouse(bundleName, defaultWarehouse); nameWithVariant = preferedWarehouse.RemapBundleName(bundleName); if (string.IsNullOrEmpty(nameWithVariant)) { operation = null; return(AssetBundleStatus.Failed); } if (_loadedAssetBundles.ContainsKey(nameWithVariant)) { operation = null; return(AssetBundleStatus.Loaded); } if (_loadingAssetBundleNames.Contains(nameWithVariant)) { operation = null; return(AssetBundleStatus.Loading); } if (_failedAssetBundleNames.Contains(nameWithVariant)) { operation = null; return(AssetBundleStatus.Failed); } _logger.DebugFormat("LoadAssetBundle :{0}", nameWithVariant); _loadingAssetBundleNames.Add(nameWithVariant); operation = null; try { operation = preferedWarehouse.LoadAssetBundle(nameWithVariant); _loadingAssetBundles.AddLast(operation); } catch (Exception e) { _logger.ErrorFormat("{0}", e); _loadingAssetBundleNames.Remove(nameWithVariant); _failedAssetBundleNames.Add(nameWithVariant); return(AssetBundleStatus.Failed); } return(AssetBundleStatus.Blank); }