using System.Collections.Generic; namespace YooAsset { public sealed class AllAssetsHandle : HandleBase { private System.Action _callback; internal AllAssetsHandle(ProviderOperation provider) : base(provider) { } internal override void InvokeCallback() { _callback?.Invoke(this); } /// /// 完成委托 /// public event System.Action Completed { add { if (IsValidWithWarning == false) throw new System.Exception($"{nameof(AllAssetsHandle)} is invalid"); if (Provider.IsDone) value.Invoke(this); else _callback += value; } remove { if (IsValidWithWarning == false) throw new System.Exception($"{nameof(AllAssetsHandle)} is invalid"); _callback -= value; } } /// /// 等待异步执行完毕 /// public void WaitForAsyncComplete() { if (IsValidWithWarning == false) return; Provider.WaitForAsyncComplete(); } /// /// 子资源对象集合 /// public IReadOnlyList AllAssetObjects { get { if (IsValidWithWarning == false) return null; return Provider.AllAssetObjects; } } } }