protected override IEnumerator GenerateLoadProcess() { while (Caching.ready == false) yield return null; _mainLoader = BaseLoader.Init<AssetBundleDependencyLoader> (path); while (_mainLoader.MoveNext () == true) yield return null; if (_mainLoader.isFailed == true) { Failed (_mainLoader.error); yield break; } asset = _mainLoader.asset; string[] dependencies = ResourceManager.Instance.assetBundleManifest.GetAllDependencies (path); foreach (var dependency in dependencies) { if (ResourceManager.Instance.Contains (dependency, ResourceType.AssetBundle) == false) { _listSubLoader.Add ( BaseLoader.Init<AssetBundleDependencyLoader> (dependency)); } } while (true) { int completeCount = 0; foreach (var loader in _listSubLoader) { if (loader.MoveNext () == false) completeCount ++; } if (_listSubLoader.Count <= completeCount) break; yield return null; } StringBuilder errorString = new StringBuilder (); foreach (var loader in _listSubLoader) { if (loader.isFailed == true) errorString.AppendLine (loader.error); } if (errorString.Length <= 0) Successed (); else Failed (errorString.ToString ()); }
protected override IEnumerator GenerateLoadProcess() { while (Caching.ready == false) { yield return(null); } _mainLoader = BaseLoader.Init <AssetBundleDependencyLoader> (path); while (_mainLoader.MoveNext() == true) { yield return(null); } if (_mainLoader.isFailed == true) { Failed(_mainLoader.error); yield break; } asset = _mainLoader.asset; string[] dependencies = ResourceManager.Instance.assetBundleManifest.GetAllDependencies(path); foreach (var dependency in dependencies) { if (ResourceManager.Instance.Contains(dependency, ResourceType.AssetBundle) == false) { _listSubLoader.Add( BaseLoader.Init <AssetBundleDependencyLoader> (dependency)); } } while (true) { int completeCount = 0; foreach (var loader in _listSubLoader) { if (loader.MoveNext() == false) { completeCount++; } } if (_listSubLoader.Count <= completeCount) { break; } yield return(null); } StringBuilder errorString = new StringBuilder(); foreach (var loader in _listSubLoader) { if (loader.isFailed == true) { errorString.AppendLine(loader.error); } } if (errorString.Length <= 0) { Successed(); } else { Failed(errorString.ToString()); } }