public override IEnumerator LoadAsync() { #if UNITY_EDITOR if (AssetPath.mode == AssetMode.Editor) { yield break; } #endif string[] dependenceNames = AssetLoader.GetDirectDependencies(bundleName); if (dependenceNames != null) { for (int i = 0; i < dependenceNames.Length; ++i) { string dependenceName = dependenceNames[i]; BundleAsset bundleObject; if (dependences.TryGetValue(dependenceName, out bundleObject) == false) { bundleObject = AssetLoader.GetOrCreateBundle <BundleAsset>(dependenceName); bundleObject.AddDependenceBy(this); dependences.Add(dependenceName, bundleObject); } } } var it = dependences.GetEnumerator(); while (it.MoveNext()) { BundleAsset bundleObject = it.Current.Value; if (bundleObject.status == LoadStatus.None) { yield return(bundleObject.LoadAsync()); } } yield return(base.LoadAsync()); }