UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ActorDescContainer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
6#include "UObject/Object.h"
13#include "ActorDescContainer.generated.h"
14
17class UWorldPartition;
18
19#if WITH_EDITOR
21{
22public:
24 bool IsDefault() const { return DeletedObjectPlaceholder.IsExplicitlyNull() && ActorDescContainerName.IsEmpty(); }
25 bool IsValid() const { return DeletedObjectPlaceholder.IsValid() && !ActorDescContainerName.IsEmpty(); }
27 UActorDescContainer* GetActorDescContainer() const;
28
29private:
31 // We store the container name instead of keeping a WeakObjectPtr to properly handle the case where the container
32 // is unregistered/re-registered between usage of annotation (this can happen if a plugin is unregistered/re-registered).
34};
35#endif
36
37
38UCLASS(MinimalAPI)
40{
42
43#if WITH_EDITOR
44 friend struct FWorldPartitionHandleUtils;
45 friend class FWorldPartitionActorDesc;
46 friend class UActorDescContainerInstance;
47
49
50public:
51 /* Struct of parameters passed to Initialize function. */
52 using FInitializeParams = FActorDescContainerInitParams;
53
54 ENGINE_API virtual void Initialize(const FInitializeParams& InitParams);
55 ENGINE_API virtual void Uninitialize();
56
57 bool IsInitialized() const { return bContainerInitialized; }
58
62
63 virtual FString GetContainerName() const { return ContainerPackageName.ToString(); }
66
67 const UExternalDataLayerAsset* GetExternalDataLayerAsset() const { return ExternalDataLayerAsset; }
68 bool HasExternalContent() const;
69
70 FGuid GetContentBundleGuid() const { return ContentBundleGuid; }
71
72 ENGINE_API FString GetExternalActorPath() const;
73 ENGINE_API FString GetExternalObjectPath() const;
74
76 ENGINE_API bool RemoveActor(const FGuid& ActorGuid);
77
78 ENGINE_API bool IsActorDescHandled(const AActor* Actor) const;
79
82
85
88
91
94
95 bool HasInvalidActors() const { return InvalidActors.Num() > 0; }
96 const TArray<FAssetData>& GetInvalidActors() const { return InvalidActors; }
98
101
106
108
109 virtual ENGINE_API const FWorldPartitionActorDesc* GetActorDescByPath(const FString& ActorPath) const;
110 virtual ENGINE_API const FWorldPartitionActorDesc* GetActorDescByPath(const FSoftObjectPath& ActorPath) const;
111 virtual ENGINE_API const FWorldPartitionActorDesc* GetActorDescByName(FName ActorName) const;
112
115
117 FGuid ContentBundleGuid;
118
120
121 //~ Begin Deprecation
122 UE_DEPRECATED(5.4, "UActorDescContainer::Update is deprecated.")
123 void Update() {}
124
125 UE_DEPRECATED(5.4, "Use UActorDescContainerInstance::GetInstancingContext instead")
126 const FLinkerInstancingContext* GetInstancingContext() const { return nullptr; }
127
128 UE_DEPRECATED(5.4, "Use UActorDescContainerInstance::GetInstanceTransform instead")
129 FTransform GetInstanceTransform() const { return FTransform::Identity; }
130
131 UE_DEPRECATED(5.4, "Use UActorDescContainerInstance::LoadAllActors instead")
133
134 UE_DEPRECATED(5.4, "Use UActorDescContainerInstance::OnObjectsReplaced instead")
135 void OnObjectsReplaced(const TMap<UObject*, UObject*>& OldToNewObjectMap) {}
136
137 UE_DEPRECATED(5.4, "UActorDescContainer::IsTemplateContainer is deprecated")
138 bool IsTemplateContainer() const { return true;}
139
140 UE_DEPRECATED(5.4, "UActorDescContainer::IsMainWorldPartitionContainer is deprecated")
141 bool IsMainPartitionContainer() const { return false; }
142
143 UE_DEPRECATED(5.4, "Use UActorDescContainerInstance::GetWorldPartition instead")
144 UWorldPartition* GetWorldPartition() const { return nullptr; }
145
146 UE_DEPRECATED(5.4, "Use version without UWorld parameter")
148 //~ End Deprecation
149
150protected:
152
153 //~ Begin UObject Interface
154 ENGINE_API virtual void BeginDestroy() override;
155 //~ End UObject Interface
156
157 ENGINE_API virtual bool ShouldRegisterDelegates() const;
158
161private:
162 // GetWorld() should never be called on an ActorDescContainer to avoid any confusion as it can be used as a template
163 UWorld* GetWorld() const override { return nullptr; }
164
167
170
172
175
178
180
181protected:
182 TObjectPtr<const UExternalDataLayerAsset> ExternalDataLayerAsset;
183#endif
184};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_EVENT_OneParam(OwningType, EventName, Param1Type)
Definition DelegateCombinations.h:51
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition Actor.h:257
Definition ActorDescList.h:269
Definition LinkerInstancingContext.h:99
Definition NameTypes.h:617
Definition ObjectSaveContext.h:244
Definition UObjectAnnotation.h:33
Definition WorldPartitionActorDesc.h:282
Definition Array.h:670
void Empty(SizeType Slack=0)
Definition Array.h:2273
Definition UnrealString.h.inl:34
Definition ActorDescContainerInstance.h:23
Definition ActorDescContainer.h:40
Definition DeletedObjectPlaceholder.h:19
Definition ExternalDataLayerAsset.h:16
Definition Object.h:95
virtual COREUOBJECT_API void BeginDestroy()
Definition Obj.cpp:1071
Definition Package.h:216
Definition WorldPartition.h:142
Definition World.h:918
Definition ActorDescContainerInitParams.h:15
Definition Guid.h:109
Definition SoftObjectPath.h:56
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25
static CORE_API const TTransform< double > Identity
Definition TransformNonVectorized.h:58