12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using System.Collections;
- using System.Collections.Generic;
- namespace YooAsset
- {
- internal abstract class BundledProvider : ProviderBase
- {
- protected AssetBundleLoaderBase OwnerBundle { private set; get; }
- protected DependAssetBundleGroup DependBundleGroup { private set; get; }
- public BundledProvider(string providerGUID, AssetInfo assetInfo) : base(providerGUID, assetInfo)
- {
- OwnerBundle = AssetSystem.CreateOwnerAssetBundleLoader(assetInfo);
- OwnerBundle.Reference();
- OwnerBundle.AddProvider(this);
- var dependBundles = AssetSystem.CreateDependAssetBundleLoaders(assetInfo);
- DependBundleGroup = new DependAssetBundleGroup(dependBundles);
- DependBundleGroup.Reference();
- }
- public override void Destroy()
- {
- base.Destroy();
- // 释放资源包
- if (OwnerBundle != null)
- {
- OwnerBundle.Release();
- OwnerBundle = null;
- }
- if (DependBundleGroup != null)
- {
- DependBundleGroup.Release();
- DependBundleGroup = null;
- }
- }
- /// <summary>
- /// 获取资源包的调试信息列表
- /// </summary>
- internal void GetBundleDebugInfos(List<DebugBundleInfo> output)
- {
- var bundleInfo = new DebugBundleInfo();
- bundleInfo.BundleName = OwnerBundle.MainBundleInfo.Bundle.BundleName;
- bundleInfo.RefCount = OwnerBundle.RefCount;
- bundleInfo.Status = (int)OwnerBundle.Status;
- output.Add(bundleInfo);
- DependBundleGroup.GetBundleDebugInfos(output);
- }
- }
- }
|