UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DataLayerManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
14#include "DataLayerManager.generated.h"
15
16class UDataLayerAsset;
17class UDataLayerInstanceWithAsset;
18class UDataLayerInstance;
21class ExternalDataLayerInstance;
24class UCanvas;
25class UWorld;
26
28
29#if WITH_EDITOR
31{
32public:
38
39private:
41
42 friend class UDataLayerManager;
43};
44#endif
45
46UCLASS(Config = Engine, Within = WorldPartition, MinimalAPI)
48{
50
51public:
52 template <class T>
53 static UDataLayerManager* GetDataLayerManager(const T* InObject)
54 {
56 return WorldPartition ? WorldPartition->GetDataLayerManager() : nullptr;
57 }
58
59 //~ Begin Blueprint interface
60
62 UFUNCTION(BlueprintCallable, Category = DataLayers)
64
66 UFUNCTION(BlueprintCallable, Category = DataLayers)
67 ENGINE_API const UDataLayerInstance* GetDataLayerInstanceFromAsset(const UDataLayerAsset* InDataLayerAsset) const;
68
70 UFUNCTION(BlueprintCallable, Category = DataLayers)
71 ENGINE_API const UDataLayerInstance* GetDataLayerInstanceFromName(const FName& InDataLayerInstanceName) const;
72
82 UFUNCTION(BlueprintCallable, Category = DataLayers)
84
94 UFUNCTION(BlueprintCallable, Category = DataLayers)
96
98 UFUNCTION(BlueprintCallable, Category = DataLayers)
100
102 UFUNCTION(BlueprintCallable, Category = DataLayers)
104
106 UPROPERTY(BlueprintAssignable)
108
109 //~ End Blueprint interface
110
111 template<class T>
112 const UDataLayerInstance* GetDataLayerInstance(const T& InDataLayerIdentifier) const;
113
114 template<class T>
115 TArray<const UDataLayerInstance*> GetDataLayerInstances(const TArray<T>& InDataLayerIdentifiers) const;
116
117 template<class T>
119
120 ENGINE_API void ForEachDataLayerInstance(TFunctionRef<bool(UDataLayerInstance*)> Func);
121 ENGINE_API void ForEachDataLayerInstance(TFunctionRef<bool(UDataLayerInstance*)> Func) const;
122
123 //~ Begin Runtime State
128 //~ End Runtime State
129
130private:
131 //~ Begin Initialization/Deinitialization
133 ENGINE_API void Initialize();
134 ENGINE_API void DeInitialize();
135 //~ End Initialization/Deinitialization
136
137 //~ Begin Debugging
138 ENGINE_API void DrawDataLayersStatus(UCanvas* Canvas, FVector2D& Offset) const;
139 ENGINE_API void DumpDataLayers(FOutputDevice& OutputDevice) const;
140 ENGINE_API TArray<UDataLayerInstance*> ConvertArgsToDataLayers(const TArray<FString>& InArgs);
141 //~ End Debugging
142
143 ENGINE_API AWorldDataLayers* GetWorldDataLayers() const;
144 ENGINE_API const UDataLayerInstance* GetDataLayerInstanceFromAssetName(const FName& InDataLayerAssetPathName) const;
145 ENGINE_API void BroadcastOnDataLayerInstanceRuntimeStateChanged(const UDataLayerInstance* InDataLayer, EDataLayerRuntimeState InState);
148
150 static ENGINE_API class FAutoConsoleCommand ToggleDataLayerActivation;
151
153 static ENGINE_API class FAutoConsoleCommand SetDataLayerRuntimeStateCommand;
154
156 static ENGINE_API class FAutoConsoleCommandWithOutputDevice DumpDataLayersCommand;
157
159 mutable TMap<const UDataLayerInstance*, double> ActiveDataLayersLoadTime;
160
172
173#if WITH_EDITOR
174private:
175 //~ Begin Editor Context
181 //~ End Editor Context
182
183 //~ Begin WorldPartitionActorDescInstance
184 ENGINE_API bool CanResolveDataLayers() const;
186
192
193 //~ End
194
195 //~ Begin Editor loading
198 //~ End Editor loading
199
201
202 // Helper
204
205 //~ Begin User settings
208 //~ End User settings
209
212
215
216 friend struct SDataLayerTreeLabel;
219 friend class FWorldPartitionActorDesc;
222 friend class UWorldPartitionConvertCommandlet;
223 friend class FDataLayersBroadcast;
224 friend class FDataLayerUtils;
225 friend class FDataLayerMode;
226 friend class FDataLayerHierarchy;
227 friend class FActorBrowsingMode;
228 friend class UDataLayerEditorSubsystem;
229 friend class UActorPartitionSubsystem;
230 friend class UActorDescContainerInstance;
231 friend class AWorldSettings;
232 friend class AActor;
233 friend class FDataLayerEditorModule;
234#endif
235
236#if WITH_EDITORONLY_DATA
237private:
238 UPROPERTY(Config)
239 TSoftClassPtr<UDataLayerLoadingPolicy> DataLayerLoadingPolicyClass;
240
241 UPROPERTY(Config)
243
246
248#endif
249};
250
252template<class T>
253const UDataLayerInstance* UDataLayerManager::GetDataLayerInstance(const T& InDataLayerIdentifier) const
254{
255 AWorldDataLayers* WorldDataLayers = GetWorldDataLayers();
256 return WorldDataLayers ? WorldDataLayers->GetDataLayerInstance(InDataLayerIdentifier) : nullptr;
257}
258
259template<class T>
261{
262 static TArray<const UDataLayerInstance*> EmptyArray;
263 AWorldDataLayers* WorldDataLayers = GetWorldDataLayers();
264 return WorldDataLayers ? WorldDataLayers->GetDataLayerInstances(InDataLayerIdentifiers) : EmptyArray;
265}
266
267template<class T>
269{
270 static TArray<FName> EmptyArray;
271 AWorldDataLayers* WorldDataLayers = GetWorldDataLayers();
272 return WorldDataLayers ? WorldDataLayers->GetDataLayerInstanceNames(InDataLayerIdentifiers) : EmptyArray;
273}
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EDataLayerRuntimeState
Definition DataLayerInstance.h:26
#define DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param1Name, Param2Type, Param2Name)
Definition DelegateCombinations.h:62
#define DECLARE_EVENT_OneParam(OwningType, EventName, Param1Type)
Definition DelegateCombinations.h:51
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition WorldDataLayers.h:85
ENGINE_API const UDataLayerInstance * GetDataLayerInstance(const FName &InDataLayerInstanceName) const
Definition WorldDataLayers.cpp:975
ENGINE_API TArray< const UDataLayerInstance * > GetDataLayerInstances(const TArray< FName > &InDataLayerInstanceNames) const
Definition WorldDataLayers.cpp:1119
ENGINE_API TArray< FName > GetDataLayerInstanceNames(const TArray< FActorDataLayer > &InActorDataLayers) const
Definition WorldDataLayers.cpp:1644
Definition Engine.Build.cs:7
Definition IConsoleManager.h:2179
Definition IConsoleManager.h:2026
Definition DataLayerUtils.h:21
Definition NameTypes.h:617
Definition OutputDevice.h:133
Definition WorldPartitionActorDescInstance.h:18
Definition WorldPartitionActorDesc.h:282
Definition WorldPartitionDebugHelper.h:16
static UWorldPartition * GetWorldPartition(const T *InObject)
Definition WorldPartitionHelpers.h:68
Definition WorldPartitionActorLoaderInterface.h:19
Definition ArrayView.h:139
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition SoftObjectPtr.h:763
Definition SubclassOf.h:30
Definition ActorDescContainerInstance.h:23
Definition ActorDescContainer.h:40
Definition ActorPartitionSubsystem.h:88
Definition Canvas.h:159
Definition DataLayerAsset.h:30
Definition DataLayerLoadingPolicy.h:16
Definition DataLayerManager.h:48
ENGINE_API bool SetDataLayerRuntimeState(const UDataLayerAsset *InDataLayerAsset, EDataLayerRuntimeState InState, bool bInIsRecursive=false)
Definition DataLayerManager.cpp:296
ENGINE_API EDataLayerRuntimeState GetDataLayerInstanceRuntimeState(const UDataLayerInstance *InDataLayerInstance) const
Definition DataLayerManager.cpp:318
ENGINE_API EDataLayerRuntimeState GetDataLayerInstanceEffectiveRuntimeState(const UDataLayerInstance *InDataLayerInstance) const
Definition DataLayerManager.cpp:328
static UDataLayerManager * GetDataLayerManager(const T *InObject)
Definition DataLayerManager.h:53
ENGINE_API bool SetDataLayerInstanceRuntimeState(const UDataLayerInstance *InDataLayerInstance, EDataLayerRuntimeState InState, bool bInIsRecursive=false)
Definition DataLayerManager.cpp:286
ENGINE_API TArray< UDataLayerInstance * > GetDataLayerInstances() const
Definition DataLayerManager.cpp:259
ENGINE_API const TSet< FName > & GetEffectiveLoadedDataLayerNames() const
Definition DataLayerManager.cpp:345
ENGINE_API bool IsAllDataLayerInEffectiveRuntimeState(TArrayView< const FName > InDataLayerNames, EDataLayerRuntimeState InState) const
Definition DataLayerManager.cpp:384
const UDataLayerInstance * GetDataLayerInstance(const T &InDataLayerIdentifier) const
ENGINE_API const UDataLayerInstance * GetDataLayerInstanceFromName(const FName &InDataLayerInstanceName) const
Definition DataLayerManager.cpp:275
friend class UExternalDataLayerInstance
Definition DataLayerManager.h:166
FOnDataLayerInstanceRuntimeStateChanged OnDataLayerInstanceRuntimeStateChanged
Definition DataLayerManager.h:107
ENGINE_API const UDataLayerInstance * GetDataLayerInstanceFromAsset(const UDataLayerAsset *InDataLayerAsset) const
Definition DataLayerManager.cpp:270
ENGINE_API bool IsAnyDataLayerInEffectiveRuntimeState(TArrayView< const FName > InDataLayerNames, EDataLayerRuntimeState InState) const
Definition DataLayerManager.cpp:352
friend class UDataLayerInstanceWithAsset
Definition DataLayerManager.h:164
TArray< FName > GetDataLayerInstanceNames(const TArray< T > &InDataLayerIdentifiers) const
Definition DataLayerManager.h:268
ENGINE_API void ForEachDataLayerInstance(TFunctionRef< bool(UDataLayerInstance *)> Func)
Definition DataLayerManager.cpp:645
ENGINE_API const TSet< FName > & GetEffectiveActiveDataLayerNames() const
Definition DataLayerManager.cpp:338
Definition DataLayerSubsystem.h:28
Definition ExternalDataLayerAsset.h:16
Definition ExternalDataLayerManager.h:27
Definition Object.h:95
Definition WorldPartitionRuntimeCell.h:236
Definition WorldPartitionRuntimeHashSet.h:151
Definition WorldPartitionRuntimeSpatialHash.h:314
Definition WorldPartitionStreamingPolicy.h:94
Definition WorldPartitionSubsystem.h:52
Definition WorldPartition.h:142
Definition World.h:918
Definition WorldPartition.cpp:74
Definition WorldDataLayers.h:51
Definition WorldPartitionRuntimeHash.h:166
Definition ObjectPtr.h:488