using System; using System.Collections; using System.Collections.Generic; namespace YooAsset { internal class DependBundleGrouper { /// /// 依赖的资源包加载器列表 /// private readonly List _dependBundles; public DependBundleGrouper(string assetPath) { _dependBundles = AssetSystem.CreateDependBundleLoaders(assetPath); } /// /// 是否已经完成(无论成功或失败) /// public bool IsDone() { foreach (var loader in _dependBundles) { if (loader.IsDone() == false) return false; } return true; } /// /// 主线程等待异步操作完毕 /// public void WaitForAsyncComplete() { foreach (var loader in _dependBundles) { if (loader.IsDone() == false) loader.WaitForAsyncComplete(); } } /// /// 增加引用计数 /// public void Reference() { foreach (var loader in _dependBundles) { loader.Reference(); } } /// /// 减少引用计数 /// public void Release() { foreach (var loader in _dependBundles) { loader.Release(); } } /// /// 获取资源包的调试信息列表 /// internal void GetBundleDebugInfos(List output) { foreach (var loader in _dependBundles) { var debugInfo = new DebugSummy.BundleInfo(); debugInfo.BundleName = loader.BundleInfo.BundleName; debugInfo.Version = loader.BundleInfo.Version; debugInfo.RefCount = loader.RefCount; debugInfo.States = loader.States; output.Add(debugInfo); } } } }