UGameplayStatics::UnloadStreamLevelBySoftObjectPtr
#include "Kismet/GameplayStatics.h"
Access: public
Specifiers: staticUFUNCTIONBlueprintCallable
Description
Unloads a previously streamed-in sub-level identified by a soft object pointer, providing a type-safe and refactor-friendly alternative to the name-based unload.
Caveats & Gotchas
- • If the soft object pointer is null or does not match a currently loaded streaming level, the function has no effect and the latent callback never fires — there is no error logged.
- • Actors in the unloaded level are destroyed immediately once the unload begins. Do not cache references to them across this call.
- • Like the name-based version, LatentInfo precedes bShouldBlockOnUnload in the parameter list — note the ordering when calling from C++.
Signature
static ENGINE_API void UnloadStreamLevelBySoftObjectPtr(const UObject* WorldContextObject, const TSoftObjectPtr<UWorld> Level, FLatentActionInfo LatentInfo, bool bShouldBlockOnUnload); Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| WorldContextObject | const UObject* | Any object in the world to use as context. | — |
| Level | const TSoftObjectPtr<UWorld> | Soft object reference to the UWorld asset to unload. | — |
| LatentInfo | FLatentActionInfo | Latent action callback that fires when the level has been fully unloaded. | — |
| bShouldBlockOnUnload | bool | If true, the game thread blocks until the level is fully unloaded. | — |
Return Type
void Example
Unload a level referenced by soft pointer C++
FLatentActionInfo LatentInfo;
LatentInfo.CallbackTarget = this;
LatentInfo.ExecutionFunction = FName("OnSubLevelUnloaded");
LatentInfo.Linkage = 0;
LatentInfo.UUID = 4;
UGameplayStatics::UnloadStreamLevelBySoftObjectPtr(this, SubLevelRef, LatentInfo, false); See Also
Version History
Introduced in: 4.18
| Version | Status | Notes |
|---|---|---|
| 5.6 | stable | — |
Feedback
Was this helpful?