概要
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 のバグの一種です。Timeout
を無効にするには 0 を指定するか、大きな値(例えば 3600 秒 = 1 時間)を指定してください。
追加リソース
- Fab で入手
- Discord サポートサーバー
- カスタム開発: [email protected] (チームや組織向けのカスタムソリューション)