I’m trying to preload a map before switching to the new map to remove the loading scene from the process.
This works in PIE but crashes in build. Does anybody know what I’m doing wrong?
void UTFGameInstance::LoadMapAsync(FName LevelName)
{
CachedLevelName = LevelName;
// Check whether requested map exists, this could be very slow if LevelName is a short package name
FString LongPackageName;
bool bOutSuccess = FPackageName::SearchForPackageOnDisk(LevelName.ToString(), &LongPackageName);
if (!bOutSuccess)
{
UE_LOG(LogTemp, Error, TEXT("Map not found"));
return;
}
int32 value = LoadPackageAsync(LongPackageName, FLoadPackageAsyncDelegate::CreateUObject(this, &UTFGameInstance::FinishedStreamingLevel));
UE_LOG(LogTemp, Error, TEXT("Loading Map %s async"), *LongPackageName);
}
void UTFGameInstance::FinishedStreamingLevel(const FName& PackageName, UPackage* InLevelPackage, EAsyncLoadingResult::Type Result)
{
if (InLevelPackage)
{
UE_LOG(LogTemp, Error, TEXT("Finished Loading"));
LevelPackage = InLevelPackage;
LevelPackage->AddToRoot();
OnFinishedLevelLoad.Broadcast();
}
}