Genel Bakış
Runtime Files Downloader, çalışma zamanında HTTP / HTTPS üzerinden dosya indirmek için bir eklentidir.
Nasıl kullanılır
Eğer bir dosyayı depolama alanına kaydetmeniz gerekiyorsa, DownloadFileToStorage fonksiyonunu çağırmanız gerekir.
- 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);
}));
Eğer dosyayı kaydetmek yerine, sadece indirilen içeriğe erişim sağlamak istiyorsanız, DownloadFileToMemory fonksiyonunu çağırmanız gerekir.
- 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());
}));
İsteğe bağlı olarak, Content Type
alanına bir MIME türü girerek indirilecek dosyanın türünü belirtebilirsiniz.
En yaygın MIME türlerinin bir listesi burada bulunmaktadır.
İndirme başladıktan sonra, CancelDownload fonksiyonunu kullanarak iptal edebilirsiniz.
- Blueprint
- C++
// Assuming Downloader is a UE reference to a UFileToStorageDownloader or UFileToMemoryDownloader object
Downloader->CancelDownload();
Lütfen unutmayın, UE 5.4'ten itibaren Timeout parametresi, indirme işleminin tamamının alınan süresi Timeout değerini aşarsa isteği indirme sırasında iptal edecek şekilde davranır, bu bir anlamda UE'de bir hatadır. Lütfen ya büyük bir değer belirtin (3600 saniye gibi, bu 1 saattir) ya da Timeout'u tamamen devre dışı bırakmak için sıfır olarak belirtin.
Ek Kaynaklar
- Fab'tan edinin
- Discord destek sunucusu
- Özel Geliştirme: [email protected] (ekipler ve organizasyonlar için özel çözümler)