namespace YooAsset { public class RawFileHandle : HandleBase { private System.Action _callback; internal RawFileHandle(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(RawFileHandle)} is invalid"); if (Provider.IsDone) value.Invoke(this); else _callback += value; } remove { if (IsValidWithWarning == false) throw new System.Exception($"{nameof(RawFileHandle)} is invalid"); _callback -= value; } } /// /// 等待异步执行完毕 /// public void WaitForAsyncComplete() { if (IsValidWithWarning == false) return; Provider.WaitForAsyncComplete(); } /// /// 获取原生文件的二进制数据 /// public byte[] GetRawFileData() { if (IsValidWithWarning == false) return null; return Provider.BundleResultObject.ReadBundleFileData(); } /// /// 获取原生文件的文本数据 /// public string GetRawFileText() { if (IsValidWithWarning == false) return null; return Provider.BundleResultObject.ReadBundleFileText(); } /// /// 获取原生文件的路径 /// public string GetRawFilePath() { if (IsValidWithWarning == false) return string.Empty; return Provider.BundleResultObject.GetBundleFilePath(); } } }