namespace YooAsset { internal class BundleInfo { private readonly string _importFilePath; private readonly IFileSystem _fileSystem; /// /// 资源包对象 /// public readonly PackageBundle Bundle; /// /// 注意:该字段只用于帮助编辑器下的模拟模式。 /// public string[] IncludeAssetsInEditor; public BundleInfo(IFileSystem fileSystem, PackageBundle bundle) { _fileSystem = fileSystem; Bundle = bundle; _importFilePath = null; } public BundleInfo(IFileSystem fileSystem, PackageBundle bundle, string importFilePath) { _fileSystem = fileSystem; Bundle = bundle; _importFilePath = importFilePath; } /// /// 加载资源文件 /// public FSLoadBundleOperation LoadBundleFile() { return _fileSystem.LoadBundleFile(Bundle); } /// /// 卸载资源文件 /// public void UnloadBundleFile(object result) { _fileSystem.UnloadBundleFile(Bundle, result); } /// /// 创建下载器 /// public FSDownloadFileOperation CreateDownloader(int failedTryAgain, int timeout) { DownloadParam downloadParam = new DownloadParam(failedTryAgain, timeout); downloadParam.ImportFilePath = _importFilePath; return _fileSystem.DownloadFileAsync(Bundle, downloadParam); } /// /// 是否需要从远端下载 /// public bool IsNeedDownloadFromRemote() { return _fileSystem.NeedDownload(Bundle); } /// /// 下载器合并识别码 /// public string GetDownloadCombineGUID() { return $"{_fileSystem.GetHashCode()}_{Bundle.BundleGUID}"; } } }