Visão Geral
O Runtime Files Downloader é um plugin para baixar arquivos via HTTP/HTTPS durante o tempo de execução.
Como usar
Se você precisar salvar um arquivo no armazenamento, então deve chamar a função 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);
}));
Se você não precisar salvar o arquivo, mas apenas obter acesso ao conteúdo baixado, então você precisa chamar a função 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());
}));
Opcionalmente, você pode especificar o tipo de arquivo para download inserindo um tipo MIME no campo Content Type
.
Uma lista dos tipos MIME mais comuns está disponível aqui.
Após o início do download, você pode cancelá-lo usando a função CancelDownload.
- Blueprint
- C++
// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
Por favor, observe que a partir do UE 5.4, o parâmetro Timeout se comporta de maneira que cancela a solicitação durante o próprio download se o tempo total gasto no download exceder o Timeout, o que é consideravelmente um bug no UE. Por favor, especifique um valor grande (como 3600 segundos, que equivale a 1 hora) ou especifique-o como zero para desativar completamente o Timeout.
Recursos Adicionais
- Obtenha no Fab
- Servidor de suporte no Discord
- Desenvolvimento Personalizado: [email protected] (soluções sob medida para equipes e organizações)