개요
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 함수를 사용하여 다운로드를 취소할 수 있습니다.
- 블루프린트
- C++
// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
UE 5.4부터 Timeout 매개변수는 다운로드에 걸리는 전체 시간이 Timeout을 초과하면 다운로드 도중에 요청을 취소하는 방식으로 동작합니다. 이는 UE의 버그에 해당할 수 있습니다. 따라서 큰 값을 지정(예: 3600초, 즉 1시간)하거나, 0으로 설정하여 Timeout을 완전히 비활성화하는 것을 권장합니다.
추가 자료
- Fab에서 다운로드
- Discord 지원 서버
- 맞춤형 개발: [email protected] (팀 및 조직을 위한 맞춤 솔루션)