/// <summary> /// 加载ab包并添加依赖项 /// </summary> /// <param name="bundleItem">加载目标包</param> private void LoadBundleDependeceSync(AssetBundleItem bundleItem) { string[] strDependeceArray = ABManifestLoader.Instance.GetAssetBundleDependce(bundleItem.BundleName); foreach (var depend in strDependeceArray) { // 添加依赖项 bundleItem.abRelation.AddDependence(depend); AssetBundleItem dependBundleItem = _AssetBundlePool.GetBundleItem(depend); if (dependBundleItem != null && _AssetBundlePool.BundleIsLoaded(depend)) { // 添加被依赖项 dependBundleItem.abRelation.AddReference(bundleItem.BundleName); continue; } if (dependBundleItem == null) { dependBundleItem = _AssetBundlePool.AddBundleItem(depend); } dependBundleItem.BundleLoadStatus = BundleLoadStatus.LOADING; // 添加被依赖项 dependBundleItem.abRelation.AddReference(bundleItem.BundleName); LoadBundleDependeceSync(dependBundleItem); } bundleItem.LoadAssetBundleSync(); }