概要

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 タイプを入力して、ダウンロードするファイルの種類を指定できます。
最も一般的な 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で入手する
- Discordサポートサーバー
- プラグインサポート & カスタム開発: [email protected] (チームや組織向けのカスタマイズされたソリューション)