UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MetaData.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Map.h"
7#include "HAL/Platform.h"
9#include "UObject/NameTypes.h"
10#include "UObject/Object.h"
17
18#include "MetaData.generated.h"
19
20class FArchive;
21class UPackage;
22
23/*-----------------------------------------------------------------------------
24 UMetaData.
25-----------------------------------------------------------------------------*/
26
32UCLASS(MinimalAPI, Deprecated, Config = Engine)
34{
36
37public:
42
48
49public:
50 // UObject interface
51 COREUOBJECT_API virtual void Serialize(FArchive& Ar) override;
52 virtual bool NeedsLoadForEditorGame() const override { return true; }
53 virtual bool IsAsset() const override { return false; }
54 // End of UObject interface
55
56private:
57 static COREUOBJECT_API void InitializeRedirectMap();
58
59private:
60 // Redirect map from deprecated keys to current key names
61 static COREUOBJECT_API TMap<FName, FName> KeyRedirectMap;
62};
63
64#if WITH_METADATA
65class FMetaData
66{
67public:
72
77 TMap< FName, FString > RootMetaDataMap;
78
81
82public:
83 [[nodiscard]] FMetaData() = default;
84 [[nodiscard]] explicit consteval FMetaData(EConstEval)
85 : ObjectMetaDataMap(ConstEval)
86 , RootMetaDataMap(ConstEval)
87 {
88 }
89
90 // MetaData utility functions
91
98 COREUOBJECT_API const FString& GetValue(const UObject* Object, const TCHAR* Key);
99
106 COREUOBJECT_API const FString& GetValue(const UObject* Object, FName Key);
107
114 bool HasValue(const UObject* Object, const TCHAR* Key)
115 {
116 return FindValue(Object, Key) != nullptr;
117 }
118
125 bool HasValue(const UObject* Object, FName Key)
126 {
127 return FindValue(Object, Key) != nullptr;
128 }
129
136 COREUOBJECT_API const FString* FindValue(const UObject* Object, const TCHAR* Key);
137
144 COREUOBJECT_API const FString* FindValue(const UObject* Object, FName Key);
145
152
159
166
173 COREUOBJECT_API void SetValue(const UObject* Object, const TCHAR* Key, const TCHAR* Value);
174
182 COREUOBJECT_API void SetValue(const UObject* Object, FName Key, const TCHAR* Value);
183
189 COREUOBJECT_API void RemoveValue(const UObject* Object, const TCHAR* Key);
190
196 COREUOBJECT_API void RemoveValue(const UObject* Object, FName Key);
197
200
202 static COREUOBJECT_API void CopyMetadata(UObject* SourceObject, UObject* DestObject);
203
208
209 friend FArchive& operator<<(FArchive& Ar, FMetaData& MetaData)
210 {
211 return Ar << MetaData.ObjectMetaDataMap << MetaData.RootMetaDataMap;
212 }
213
214 // Returns the remapped key name, or NAME_None was not remapped.
216
217private:
218 static COREUOBJECT_API void InitializeRedirectMap();
219
220 // Redirect map from deprecated keys to current key names
221 static COREUOBJECT_API TMap<FName, FName> KeyRedirectMap;
222};
223
225{
226private:
229
230public:
232 COREUOBJECT_API static void DumpAllMetaData();
233
236
237private:
238 friend class UObject;
239
242 {
243 public:
251
256 private:
257
259 UPackage* OldPackage;
260
263
266
269 };
270
271private:
273};
274
275#endif //WITH_METADATA
EConstEval
Definition CoreMiscDefines.h:161
@ ConstEval
Definition CoreMiscDefines.h:161
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition IConsoleManager.h:2026
Definition NameTypes.h:617
Definition UnrealString.h.inl:34
Definition MetaData.h:34
TMap< FName, FString > RootMetaDataMap
Definition MetaData.h:47
virtual bool IsAsset() const override
Definition MetaData.h:53
TMap< FWeakObjectPtr, TMap< FName, FString > > ObjectMetaDataMap
Definition MetaData.h:41
virtual bool NeedsLoadForEditorGame() const override
Definition MetaData.h:52
Definition Object.h:95
Definition Package.h:216
IAnalyticsPropertyStore::EStatusCode SetValue(TGetter &&GetterFn, TSetter &&SetterFn, const T &ProposedValue, TCompare &&ConditionFn)
Definition AnalyticsPropertyStore.cpp:34
T::FDataType GetValue(const UBlackboardComponent &Blackboard, const FName &Name, FBlackboard::FKey &InOutCachedKey, const typename T::FDataType &DefaultValue)
Definition ValueOrBBKey.h:51
Definition SoftObjectPath.h:56