概述

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 中算是某種錯誤。請指定一個較大的值(例如 3600 秒,即 1 小時),或將其指定為零以完全停用 Timeout。
其他資源
- 在 Fab 上取得
- 外掛支援與客製開發:[email protected](為團隊與組織提供的量身解決方案)
Join our Discord
online · support