UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ExternalDataLayerManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreFwd.h"
6#include "UObject/Object.h"
12
13#include "ExternalDataLayerManager.generated.h"
14
15#define UE_API ENGINE_API
16
20class UExternalDataLayerInstance;
24
25UCLASS(MinimalAPI, Within = WorldPartition)
27{
29
30public:
31 template <class T>
33 {
35 return WorldPartition ? WorldPartition->GetExternalDataLayerManager() : nullptr;
36 }
37
38private:
39 //~ Begin Initialization/Deinitialization
41 UE_API void Initialize();
42 bool IsInitialized() const { return bIsInitialized; }
43 UE_API void DeInitialize();
44 //~ End Initialization/Deinitialization
45
46 //~ Begin UObject Interface
47 UE_API virtual void Serialize(FArchive& Ar) override;
48 //~ End UObject Interface
49
50 //~ Begin Injection/Removal
51 UE_API void UpdateExternalDataLayerInjectionState(const UExternalDataLayerAsset* InExternalDataLayerAsset);
52 UE_API bool CanInjectExternalDataLayerAsset(const UExternalDataLayerAsset* InExternalDataLayerAsset, FText* OutReason = nullptr) const;
53 UE_API bool IsExternalDataLayerInjected(const UExternalDataLayerAsset* InExternalDataLayerAsset) const;
54 UE_API bool InjectExternalDataLayer(const UExternalDataLayerAsset* InExternalDataLayerAsset);
55 UE_API bool RemoveExternalDataLayer(const UExternalDataLayerAsset* InExternalDataLayerAsset);
56 UE_API bool InjectIntoGameWorld(const UExternalDataLayerAsset* InExternalDataLayerAsset);
57 UE_API bool RemoveFromGameWorld(const UExternalDataLayerAsset* InExternalDataLayerAsset);
58 UE_API bool RegisterExternalStreamingObjectForGameWorld(const UExternalDataLayerAsset* InExternalDataLayerAsset);
59 UE_API bool UnregisterExternalStreamingObjectForGameWorld(const UExternalDataLayerAsset* InExternalDataLayerAsset);
60 //~ End Injection/Removal
61
62 // Monitor when EDL state changes
64
65 UE_API FString GetExternalDataLayerLevelRootPath(const UExternalDataLayerAsset* InExternalDataLayerAsset) const;
66 UE_API FString GetExternalStreamingObjectPackagePath(const UExternalDataLayerAsset* InExternalDataLayerAsset) const;
67 UE_API const UExternalDataLayerInstance* GetExternalDataLayerInstance(const UExternalDataLayerAsset* InExternalDataLayerAsset) const;
69 UE_API UDataLayerManager& GetDataLayerManager() const;
70
71#if WITH_EDITOR
72 //~ Begin UObject Interface
73 UE_API virtual void PreEditUndo() override;
74 UE_API virtual void PostEditUndo() override;
75 //~ End UObject Interface
76
77 // Used in editor
85 UE_API AWorldDataLayers* GetWorldDataLayers(const UExternalDataLayerAsset* InExternalDataLayerAsset, bool bInAllowCreate = false) const;
90
91 // Used for PIE/-game
94
95 //~ Begin Cooking
99 //~ End Cooking
100#endif
101
102private:
103 bool IsRunningGameOrInstancedWorldPartition() const { return bIsRunningGameOrInstancedWorldPartition; }
104
105 bool bIsInitialized;
106 bool bIsRunningGameOrInstancedWorldPartition;
107
110
111#if WITH_EDITORONLY_DATA
114#endif
115
116#if WITH_EDITOR
121#endif
122
123 friend class FDataLayerMode;
124 friend class FDataLayerEditorModule;
126 friend class AWorldDataLayers;
127 friend class UWorldPartition;
128 friend class UExternalDataLayerInstance;
129 friend class UDataLayerEditorSubsystem;
131 friend class UContentBundleEditingSubmodule;
133 friend class UGameFeatureActionConvertContentBundleWorldPartitionBuilder;
134 friend struct FWorldPartitionUtils;
136};
137
138#undef UE_API
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EExternalDataLayerRegistrationState
Definition ExternalDataLayerEngineSubsystem.h:18
#define UE_API
Definition ExternalDataLayerManager.h:15
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition Actor.h:257
Definition WorldDataLayers.h:85
ENGINE_API const UExternalDataLayerInstance * GetExternalDataLayerInstance(const UExternalDataLayerAsset *InExternalDataLayerAsset) const
Definition WorldDataLayers.cpp:1087
friend class UExternalDataLayerManager
Definition WorldDataLayers.h:372
Definition Archive.h:1208
Definition ExternalDataLayerHelper.h:32
Definition Text.h:385
static UWorldPartition * GetWorldPartition(const T *InObject)
Definition WorldPartitionHelpers.h:68
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition ActorDescContainerInstance.h:23
Definition DataLayerManager.h:48
Definition ExternalDataLayerAsset.h:16
Definition ExternalDataLayerManager.h:27
static UExternalDataLayerManager * GetExternalDataLayerManager(const T *InObject)
Definition ExternalDataLayerManager.h:32
Definition LevelInstanceSubsystem.h:55
Definition Level.h:423
Definition Object.h:95
Definition WorldPartitionRuntimeHash.h:61
Definition WorldPartitionRuntimeCell.h:236
Definition WorldPartitionRuntimeLevelStreamingCell.h:17
Definition WorldPartition.h:142
Definition WorldPartition.cpp:74
EResult DeInitialize()
Definition Common.cpp:44
Definition SoftObjectPath.h:56
Definition ObjectPtr.h:488