概述
Runtime Files Downloader 是一个用于在运行时通过 HTTP / HTTPS 下载文件的插件。
如何使用
如果您需要将文件保存到存储中,则需要调用 DownloadFileToStorage 函数。
- Blueprint
- C++
UFileToStorageDownloader::DownloadFileToStorage(TEXT("https://example.com/File.zip"), TEXT("C:/Folder/File.zip"), 15.0f, TEXT(""), false,
FOnDownloadProgressNative::CreateLambda([](int64 BytesReceived, int64 ContentSize, float ProgressRatio)
{
UE_LOG(LogTemp, Log, TEXT("Download progress: %f"), ProgressRatio);
}), FOnFileToStorageDownloadCompleteNative::CreateLambda([](EDownloadToStorageResult Result, const FString& SavedPath, UFileToStorageDownloader* Downloader)
{
UE_LOG(LogTemp, Log, TEXT("Download complete, result: %s, saved path: %s"), *UEnum::GetValueAsString(Result), *SavedPath);
}));
如果您不需要保存文件,而只需访问下载的内容,则需要调用 DownloadFileToMemory 函数。
- Blueprint
- C++
UFileToMemoryDownloader::DownloadFileToMemory(TEXT("https://example.com/File.zip"), 15.0f, TEXT(""), false,
FOnDownloadProgressNative::CreateLambda([](int64 BytesReceived, int64 ContentSize, float ProgressRatio)
{
UE_LOG(LogTemp, Log, TEXT("Download progress: %f"), ProgressRatio);
}), FOnFileToMemoryDownloadCompleteNative::CreateLambda([](const TArray64<uint8>& DownloadedContent, EDownloadToMemoryResult Result, UFileToMemoryDownloader* Downloader)
{
UE_LOG(LogTemp, Log, TEXT("Download complete, result: %s, DownloadedContent size: %d"), *UEnum::GetValueAsString(Result), DownloadedContent.Num());
}));
可选地,您可以 通过在 Content Type
字段中输入 MIME 类型来指定要下载的文件类型。
下载开始后,您可以使用 CancelDownload 函数取消它。
- Blueprint
- C++
// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
请注意,从 UE 5.4 开始,Timeout 参数的行为方式有所变化,如果下载的总耗时超过了 Timeout,则会在下载过程中取消请求,这在 UE 中算是一个 Bug。请指定一个较大的值(例如 3600 秒,即 1 小时),或者将其设为零以完全禁用 Timeout。
额外资源
- 在 Fab 获取
- Discord 支持服务器
- 定制开发:[email protected](为团队和组织提供定制化解决方案)