112 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			112 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections; | |||
|  | using System.Collections.Generic; | |||
|  | 
 | |||
|  | namespace YooAsset | |||
|  | { | |||
|  |     internal class DependAssetBundles | |||
|  |     { | |||
|  |         /// <summary> | |||
|  |         /// 依赖的资源包加载器列表 | |||
|  |         /// </summary> | |||
|  |         internal readonly List<BundleLoaderBase> DependList; | |||
|  | 
 | |||
|  | 
 | |||
|  |         public DependAssetBundles(List<BundleLoaderBase> dpendList) | |||
|  |         { | |||
|  |             DependList = dpendList; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 是否已经完成(无论成功或失败) | |||
|  |         /// </summary> | |||
|  |         public bool IsDone() | |||
|  |         { | |||
|  |             foreach (var loader in DependList) | |||
|  |             { | |||
|  |                 if (loader.IsDone() == false) | |||
|  |                     return false; | |||
|  |             } | |||
|  |             return true; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 依赖资源包是否全部加载成功 | |||
|  |         /// </summary> | |||
|  |         public bool IsSucceed() | |||
|  |         { | |||
|  |             foreach (var loader in DependList) | |||
|  |             { | |||
|  |                 if (loader.Status != BundleLoaderBase.EStatus.Succeed) | |||
|  |                 { | |||
|  |                     return false; | |||
|  |                 } | |||
|  |             } | |||
|  |             return true; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 获取某个加载失败的资源包错误信息 | |||
|  |         /// </summary> | |||
|  |         public string GetLastError() | |||
|  |         { | |||
|  |             foreach (var loader in DependList) | |||
|  |             { | |||
|  |                 if (loader.Status != BundleLoaderBase.EStatus.Succeed) | |||
|  |                 { | |||
|  |                     return loader.LastError; | |||
|  |                 } | |||
|  |             } | |||
|  |             return string.Empty; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 主线程等待异步操作完毕 | |||
|  |         /// </summary> | |||
|  |         public void WaitForAsyncComplete() | |||
|  |         { | |||
|  |             foreach (var loader in DependList) | |||
|  |             { | |||
|  |                 if (loader.IsDone() == false) | |||
|  |                     loader.WaitForAsyncComplete(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 增加引用计数 | |||
|  |         /// </summary> | |||
|  |         public void Reference() | |||
|  |         { | |||
|  |             foreach (var loader in DependList) | |||
|  |             { | |||
|  |                 loader.Reference(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 减少引用计数 | |||
|  |         /// </summary> | |||
|  |         public void Release() | |||
|  |         { | |||
|  |             foreach (var loader in DependList) | |||
|  |             { | |||
|  |                 loader.Release(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 获取资源包的调试信息列表 | |||
|  |         /// </summary> | |||
|  |         internal void GetBundleDebugInfos(List<DebugBundleInfo> output) | |||
|  |         { | |||
|  |             foreach (var loader in DependList) | |||
|  |             { | |||
|  |                 var bundleInfo = new DebugBundleInfo(); | |||
|  |                 bundleInfo.BundleName = loader.MainBundleInfo.Bundle.BundleName; | |||
|  |                 bundleInfo.RefCount = loader.RefCount; | |||
|  |                 bundleInfo.Status = loader.Status.ToString(); | |||
|  |                 output.Add(bundleInfo); | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | } |