UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UClass Class Reference

#include <Class.h>

+ Inheritance diagram for UClass:

Public Types

typedef void(* ClassConstructorType) (const FObjectInitializer &)
 
typedef UObject *(* ClassVTableHelperCtorCallerType) (FVTableHelper &Helper)
 
typedef UClass *(* StaticClassFunctionType) ()
 
- Public Types inherited from UStruct
typedef TArray< TPair< TFieldPath< FField >, int32 > > FUnresolvedScriptPropertiesArray
 
using FSuperStructIterator = TObjectPtrLinkedListIterator< UStruct, &UStruct::SuperStruct, true >
 
using FConstSuperStructIterator = TObjectPtrLinkedListIteratorConst< UStruct, &UStruct::SuperStruct, true >
 
- Public Types inherited from UField
typedef UField BaseFieldClass
 
typedef UClass FieldTypeClass
 
using FLinkedListBuilder = TObjectPtrLinkedListBuilder< UField >
 
- Public Types inherited from UObject
enum class  ENetFields_Private { NETFIELD_REP_START = 0 , NETFIELD_REP_END = -1 }
 
typedef UObject WithinClass
 

Public Member Functions

void CallAddReferencedObjects (UObject *This, FReferenceCollector &Collector) const
 
 UE_DEPRECATED (5.6, "ClassDefaultObject will be made private in the next release. For general purpose access to the CDO consider using the global GetDefault<>() or GetMutableDefault<>() functions.") TObjectPtr< UObject > ClassDefaultObject
 
COREUOBJECT_API const voidGetSparseClassData (const EGetSparseClassDataMethod GetMethod)
 
voidGetOrCreateSparseClassData ()
 
COREUOBJECT_API UScriptStructGetSparseClassDataStruct () const
 
COREUOBJECT_API void SetSparseClassDataStruct (UScriptStruct *InSparseClassDataStruct)
 
COREUOBJECT_API void ClearSparseClassDataStruct (bool bInRecomplingOnLoad)
 
COREUOBJECT_API UClass (const FObjectInitializer &ObjectInitializer=FObjectInitializer::Get())
 
COREUOBJECT_API UClass (const FObjectInitializer &ObjectInitializer, UClass *InSuperClass)
 
COREUOBJECT_API UClass (EStaticConstructor, FName InName, uint32 InSize, uint32 InAlignment, EClassFlags InClassFlags, EClassCastFlags InClassCastFlags, const TCHAR *InClassConfigName, EObjectFlags InFlags, ClassConstructorType InClassConstructor, ClassVTableHelperCtorCallerType InClassVTableHelperCtorCaller, FUObjectCppClassStaticFunctions &&InCppClassStaticFunctions)
 
COREUOBJECT_API ~UClass ()
 
virtual COREUOBJECT_API UClassGetAuthoritativeClass ()
 
const UClassGetAuthoritativeClass () const
 
COREUOBJECT_API void AddNativeFunction (const ANSICHAR *InName, FNativeFuncPtr InPointer)
 
COREUOBJECT_API void AddNativeFunction (const WIDECHAR *InName, FNativeFuncPtr InPointer)
 
void AddFunctionToFunctionMap (UFunction *Function, FName FuncName)
 
COREUOBJECT_API void CreateLinkAndAddChildFunctionsToMap (const FClassFunctionLinkInfo *Functions, uint32 NumFunctions)
 
void RemoveFunctionFromFunctionMap (UFunction *Function)
 
COREUOBJECT_API void ClearFunctionMapsCaches ()
 
COREUOBJECT_API UFunctionFindFunctionByName (FName InName, EIncludeSuperFlag::Type IncludeSuper=EIncludeSuperFlag::IncludeSuper) const
 
virtual COREUOBJECT_API void Serialize (FArchive &Ar) override
 
virtual COREUOBJECT_API void PostLoad () override
 
virtual COREUOBJECT_API void FinishDestroy () override
 
virtual COREUOBJECT_API void DeferredRegister (UClass *UClassStaticClass, const TCHAR *PackageName, const TCHAR *InName) override
 
virtual COREUOBJECT_API bool Rename (const TCHAR *NewName=nullptr, UObject *NewOuter=nullptr, ERenameFlags Flags=REN_None) override
 
virtual COREUOBJECT_API void TagSubobjects (EObjectFlags NewFlags) override
 
virtual COREUOBJECT_API void PostInitProperties () override
 
virtual COREUOBJECT_API FRestoreForUObjectOverwriteGetRestoreForUObjectOverwrite () override
 
virtual COREUOBJECT_API FString GetDesc () override
 
virtual COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context) const override
 
virtual COREUOBJECT_API void GetAssetRegistryTags (TArray< FAssetRegistryTag > &OutTags) const override
 
virtual bool IsAsset () const override
 
virtual bool IsNameStableForNetworking () const override
 
virtual COREUOBJECT_API void GetPreloadDependencies (TArray< UObject * > &OutDeps) override
 
virtual COREUOBJECT_API void Bind () override
 
virtual COREUOBJECT_API const TCHARGetPrefixCPP () const override
 
virtual COREUOBJECT_API void Link (FArchive &Ar, bool bRelinkExistingProperties) override
 
virtual COREUOBJECT_API void SetSuperStruct (UStruct *NewSuperStruct) override
 
virtual COREUOBJECT_API bool IsStructTrashed () const override
 
UE_INTERNAL virtual COREUOBJECT_API EStructPropertyLinkFlags GetPropertyLinkFlags (UStruct *ContainerStruct, FProperty *Property) const
 
UE_FORCEINLINE_HINT FTopLevelAssetPath GetClassPathName () const
 
void SetCppTypeInfoStatic (const FCppClassTypeInfoStatic *InCppTypeInfoStatic)
 
COREUOBJECT_API const FString GetConfigName () const
 
UClassGetSuperClass () const
 
int32 GetDefaultsCount ()
 
UObjectGetDefaultObject (bool bCreateIfNeeded=true) const
 
COREUOBJECT_API void SetDefaultObject (UObject *InClassDefaultObject)
 
bool CheckDefaultObjectIsValidLowLevelFast (const int32 AlignmentCheck) const
 
virtual void PostInitInstance (UObject *InObj, FObjectInstancingGraph *InstanceGraph)
 
virtual void PostLoadInstance (UObject *InObj)
 
virtual void InitPropertiesFromCustomList (uint8 *DataPtr, const uint8 *DefaultDataPtr)
 
virtual void SetupObjectInitializer (FObjectInitializer &ObjectInitializer) const
 
virtual bool CanCreateAssetOfClass () const
 
COREUOBJECT_API FName GetDefaultObjectName () const
 
virtual uint8GetPersistentUberGraphFrame (UObject *Obj, UFunction *FuncToCheck) const
 
virtual void CreatePersistentUberGraphFrame (UObject *Obj, bool bCreateOnlyIfEmpty=false, bool bSkipSuperClass=false, UClass *OldClass=nullptr) const
 
virtual void DestroyPersistentUberGraphFrame (UObject *Obj, bool bSkipSuperClass=false) const
 
template<class T >
T * GetDefaultObject () const
 
COREUOBJECT_API UObjectGetDefaultSubobjectByName (FName ToFind)
 
void AddDefaultSubobject (UObject *NewSubobject, const UClass *BaseClass)
 
COREUOBJECT_API void GetDefaultObjectSubobjects (TArray< UObject * > &OutDefaultSubobjects)
 
UE_FORCEINLINE_HINT bool HasAnyClassFlags (EClassFlags FlagsToCheck) const
 
UE_FORCEINLINE_HINT bool HasAllClassFlags (EClassFlags FlagsToCheck) const
 
UE_FORCEINLINE_HINT EClassFlags GetClassFlags () const
 
UE_FORCEINLINE_HINT bool HasAnyCastFlag (EClassCastFlags FlagToCheck) const
 
UE_FORCEINLINE_HINT bool HasAllCastFlags (EClassCastFlags FlagsToCheck) const
 
COREUOBJECT_API FString GetDescription () const
 
COREUOBJECT_API void AssembleReferenceTokenStream (bool bForce=false)
 
COREUOBJECT_API bool ImplementsInterface (const class UClass *SomeInterface) const
 
virtual COREUOBJECT_API void SerializeDefaultObject (UObject *Object, FStructuredArchive::FSlot Slot)
 
virtual void SerializeDefaultObject (UObject *Object, FArchive &Ar) final
 
COREUOBJECT_API void SerializeSparseClassData (FStructuredArchive::FSlot Slot)
 
virtual COREUOBJECT_API void PostLoadDefaultObject (UObject *Object)
 
virtual COREUOBJECT_API void PurgeClass (bool bRecompilingOnLoad)
 
virtual COREUOBJECT_API bool IsFunctionImplementedInScript (FName InFunctionName) const
 
virtual COREUOBJECT_API bool HasProperty (const FProperty *InProperty) const
 
virtual UObjectFindArchetype (const UClass *ArchetypeClass, const FName ArchetypeName) const
 
virtual COREUOBJECT_API UObjectGetArchetypeForCDO () const
 
COREUOBJECT_API const voidGetArchetypeForSparseClassData (const EGetSparseClassDataMethod GetMethod=EGetSparseClassDataMethod::ArchetypeIfNull) const
 
COREUOBJECT_API UScriptStructGetSparseClassDataArchetypeStruct () const
 
 UE_DEPRECATED (5.5, "Replace with UE::Reflection::DoesSparseClassDataOverrideArchetype(Class, [](const FProperty*){return true;})") COREUOBJECT_API bool OverridesSparseClassDataArchetype() const
 
virtual void GetDefaultObjectPreloadDependencies (TArray< UObject * > &OutDeps)
 
COREUOBJECT_API void SetUpRuntimeReplicationData ()
 
bool ShouldUseDynamicSubobjectInstancing () const
 
- Public Member Functions inherited from UStruct
 UStruct (const FObjectInitializer &ObjectInitializer)
 
COREUOBJECT_API UStruct (EStaticConstructor, int32 InSize, int32 InAlignment, EObjectFlags InFlags)
 
COREUOBJECT_API UStruct (UStruct *InSuperStruct, SIZE_T ParamsSize=0, SIZE_T Alignment=0)
 
COREUOBJECT_API UStruct (const FObjectInitializer &ObjectInitializer, UStruct *InSuperStruct, SIZE_T ParamsSize=0, SIZE_T Alignment=0)
 
virtual COREUOBJECT_API ~UStruct ()
 
virtual COREUOBJECT_API void Serialize (FStructuredArchive::FRecord Record) override
 
virtual COREUOBJECT_API void RegisterDependencies () override
 
virtual COREUOBJECT_API void AddCppProperty (FProperty *Property) override
 
COREUOBJECT_API FTopLevelAssetPath GetStructPathName () const
 
COREUOBJECT_API FPropertyFindPropertyByName (FName InName) const
 
UE_INTERNAL COREUOBJECT_API FPropertyFindPropertyByOffset (int32 Offset) const
 
COREUOBJECT_API void InstanceSubobjectTemplates (TNotNull< void * > Data, const void *DefaultData, const UStruct *DefaultStruct, TNotNull< UObject * > Owner, FObjectInstancingGraph *InstanceGraph)
 
virtual UStructGetInheritanceSuper () const
 
COREUOBJECT_API void StaticLink (bool bRelinkExistingProperties=false)
 
virtual void SerializeBin (FArchive &Ar, void *Data) const final
 
virtual COREUOBJECT_API void SerializeBin (FStructuredArchive::FSlot Slot, void *Data) const
 
COREUOBJECT_API void SerializeBinEx (FStructuredArchive::FSlot Slot, void *Data, void const *DefaultData, UStruct *DefaultStruct) const
 
virtual void SerializeTaggedProperties (FArchive &Ar, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults, const UObject *BreakRecursionIfFullyLoad=nullptr) const final
 
virtual COREUOBJECT_API void SerializeTaggedProperties (FStructuredArchive::FSlot Slot, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults, const UObject *BreakRecursionIfFullyLoad=nullptr) const
 
virtual COREUOBJECT_API void PreloadChildren (FArchive &Ar)
 
virtual COREUOBJECT_API void InitializeStruct (void *Dest, int32 ArrayDim=1) const
 
virtual COREUOBJECT_API void DestroyStruct (void *Dest, int32 ArrayDim=1) const
 
virtual FPropertyCustomFindProperty (const FName InName) const
 
virtual COREUOBJECT_API EExprToken SerializeExpr (int32 &iCode, FArchive &Ar)
 
UE_FORCEINLINE_HINT int32 GetPropertiesSize () const
 
UE_FORCEINLINE_HINT int32 GetMinAlignment () const
 
UE_FORCEINLINE_HINT int32 GetStructureSize () const
 
void SetPropertiesSize (int32 NewSize)
 
template<class T >
bool IsChildOf () const
 
COREUOBJECT_API bool IsChildOf (const UStruct *SomeBase) const
 
FSuperStructIterator GetSuperStructIterator ()
 
FConstSuperStructIterator GetSuperStructIterator () const
 
UStructGetSuperStruct () const
 
virtual COREUOBJECT_API FString GetAuthoredNameForField (const UField *Field) const
 
virtual COREUOBJECT_API FString GetAuthoredNameForField (const FField *Field) const
 
COREUOBJECT_API void DestroyChildPropertiesAndResetPropertyLinks ()
 
void SetUnresolvedScriptProperties (FUnresolvedScriptPropertiesArray &InUnresolvedProperties)
 
void DeleteUnresolvedScriptProperties ()
 
COREUOBJECT_API void CollectBytecodeReferencedObjects (TArray< UObject * > &OutReferencedObjects)
 
COREUOBJECT_API void CollectPropertyReferencedObjects (TArray< UObject * > &OutReferencedObjects)
 
COREUOBJECT_API void CollectBytecodeAndPropertyReferencedObjects ()
 
COREUOBJECT_API void CollectBytecodeAndPropertyReferencedObjectsRecursively ()
 
COREUOBJECT_API EPropertyVisitorControlFlow Visit (void *Data, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorPath &, const FPropertyVisitorData &)> InFunc) const
 
COREUOBJECT_API EPropertyVisitorControlFlow Visit (void *Data, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)> InFunc, FPropertyVisitorContext::EScope InScope=FPropertyVisitorContext::EScope::All) const
 
virtual COREUOBJECT_API EPropertyVisitorControlFlow Visit (FPropertyVisitorContext &Context, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)> InFunc) const
 
virtual COREUOBJECT_API voidResolveVisitedPathInfo (void *Data, const FPropertyVisitorInfo &Info) const
 
- Public Member Functions inherited from UField
 UField (const FObjectInitializer &ObjectInitializer)
 
 UField (EStaticConstructor, EObjectFlags InFlags)
 
 ~UField ()=default
 
virtual COREUOBJECT_API bool NeedsLoadForClient () const override
 
virtual COREUOBJECT_API bool NeedsLoadForServer () const override
 
COREUOBJECT_API UClassGetOwnerClass () const
 
COREUOBJECT_API UStructGetOwnerStruct () const
 
COREUOBJECT_API FString GetAuthoredName () const
 
COREUOBJECT_API bool HasAnyCastFlags (const uint64 InCastFlags) const
 
COREUOBJECT_API bool HasAllCastFlags (const uint64 InCastFlags) const
 
- Public Member Functions inherited from UObject
COREUOBJECT_API UObject ()
 
COREUOBJECT_API UObject (const FObjectInitializer &ObjectInitializer)
 
COREUOBJECT_API UObject (EStaticConstructor, EObjectFlags InFlags)
 
COREUOBJECT_API UObject (FVTableHelper &Helper)
 
COREUOBJECT_API UObjectCreateDefaultSubobject (FName SubobjectFName, UClass *ReturnType, UClass *ClassToCreateByDefault, bool bIsRequired, bool bIsTransient)
 
template<class TReturnType >
TReturnTypeCreateEditorOnlyDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
COREUOBJECT_API void GetDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects)
 
COREUOBJECT_API UObjectGetDefaultSubobjectByName (FName ToFind)
 
virtual COREUOBJECT_API void PostReinitProperties ()
 
virtual void PostCDOContruct ()
 
virtual COREUOBJECT_API void PreSaveRoot (FObjectPreSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void PostSaveRoot (FObjectPostSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void PreSave (FObjectPreSaveContext SaveContext)
 
virtual COREUOBJECT_API void CollectSaveOverrides (FObjectCollectSaveOverridesContext SaveContext)
 
UE_FORCEINLINE_HINT bool Modify (bool bAlwaysMarkDirty=true)
 
UE_FORCEINLINE_HINT bool IsCapturingAsRootObjectForTransaction () const
 
virtual bool ResolveSubobject (const TCHAR *SubObjectPath, UObject *&OutObject, bool bLoadIfExists)
 
virtual bool IsReadyForAsyncPostLoad () const
 
virtual COREUOBJECT_API void PostLoadSubobjects (FObjectInstancingGraph *OuterInstanceGraph)
 
virtual COREUOBJECT_API void BeginDestroy ()
 
virtual bool IsReadyForFinishDestroy ()
 
virtual void ShutdownAfterError ()
 
virtual void PostInterpChange (FProperty *PropertyThatChanged)
 
virtual COREUOBJECT_API void PostRename (UObject *OldOuter, const FName OldName)
 
virtual void PreDuplicate (FObjectDuplicationParameters &DupParams)
 
virtual void PostDuplicate (bool bDuplicateForPIE)
 
virtual void PostDuplicate (EDuplicateMode::Type DuplicateMode)
 
virtual COREUOBJECT_API bool NeedsLoadForTargetPlatform (const class ITargetPlatform *TargetPlatform) const
 
virtual bool NeedsLoadForEditorGame () const
 
virtual bool IsEditorOnly () const
 
virtual bool HasNonEditorOnlyReferences () const
 
virtual bool IsPostLoadThreadSafe () const
 
virtual COREUOBJECT_API bool IsDestructionThreadSafe () const
 
virtual void GetPrestreamPackages (TArray< UObject * > &OutPrestream)
 
virtual void ExportCustomProperties (FOutputDevice &Out, uint32 Indent)
 
virtual void ImportCustomProperties (const TCHAR *SourceText, FFeedbackContext *Warn)
 
virtual void PostEditImport ()
 
virtual void PostReloadConfig (class FProperty *PropertyThatWasLoaded)
 
COREUOBJECT_API UScriptStructGetSparseClassDataStruct () const
 
virtual bool GetNativePropertyValues (TMap< FString, FString > &out_PropertyValues, uint32 ExportFlags=0) const
 
virtual COREUOBJECT_API void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize)
 
SIZE_T GetResourceSizeBytes (EResourceSizeMode::Type Mode)
 
virtual FName GetExporterName (void)
 
COREUOBJECT_API void CallAddReferencedObjects (FReferenceCollector &Collector)
 
virtual bool AreNativePropertiesIdenticalTo (UObject *Other) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetData &Out) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context, FAssetData &Out) const
 
virtual COREUOBJECT_API FPrimaryAssetId GetPrimaryAssetId () const
 
virtual COREUOBJECT_API bool IsLocalizedResource () const
 
virtual COREUOBJECT_API bool IsSafeForRootSet () const
 
virtual COREUOBJECT_API void GetLifetimeReplicatedProps (TArray< class FLifetimeProperty > &OutLifetimeProps) const
 
virtual COREUOBJECT_API void GetReplicatedCustomConditionState (FCustomPropertyConditionState &OutActiveState) const
 
virtual COREUOBJECT_API void RegisterReplicationFragments (UE::Net::FFragmentRegistrationContext &Context, UE::Net::EFragmentRegistrationFlags RegistrationFlags)
 
virtual COREUOBJECT_API bool IsFullNameStableForNetworking () const
 
virtual COREUOBJECT_API bool IsSupportedForNetworking () const
 
virtual void GetSubobjectsWithStableNamesForNetworking (TArray< UObject * > &ObjList)
 
virtual COREUOBJECT_API void PreNetReceive ()
 
virtual COREUOBJECT_API void PostNetReceive ()
 
virtual void PostRepNotifies ()
 
virtual COREUOBJECT_API void PreDestroyFromReplication ()
 
COREUOBJECT_API bool IsSelected () const
 
COREUOBJECT_API void SerializeScriptProperties (FArchive &Ar) const
 
COREUOBJECT_API void SerializeScriptProperties (FStructuredArchive::FSlot Slot) const
 
COREUOBJECT_API void ReinitializeProperties (UObject *SourceObject=NULL, struct FObjectInstancingGraph *InstanceGraph=NULL)
 
COREUOBJECT_API FString GetDetailedInfo () const
 
COREUOBJECT_API bool ConditionalBeginDestroy ()
 
COREUOBJECT_API bool ConditionalFinishDestroy ()
 
COREUOBJECT_API void ConditionalPostLoad ()
 
COREUOBJECT_API void ConditionalPreload ()
 
COREUOBJECT_API void ConditionalPostLoadSubobjects (struct FObjectInstancingGraph *OuterInstanceGraph=NULL)
 
bool IsBasedOnArchetype (const UObject *const SomeObject) const
 
COREUOBJECT_API UFunctionFindFunction (FName InName) const
 
COREUOBJECT_API UFunctionFindFunctionChecked (FName InName) const
 
virtual COREUOBJECT_API void BuildSubobjectMapping (UObject *OtherObject, TMap< UObject *, UObject * > &ObjectMapping) const
 
COREUOBJECT_API void CollectDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects, bool bIncludeNestedSubobjects=false) const
 
COREUOBJECT_API bool CheckDefaultSubobjects (bool bForceCheck=false) const
 
COREUOBJECT_API void SaveConfig (uint64 RequiredPropertyFlags=CPF_Config, const TCHAR *Filename=nullptr, FConfigCacheIni *Config=GConfig, bool bAllowCopyToDefaultObject=true)
 
COREUOBJECT_API void SaveConfig (const FSaveConfigContext &Context)
 
COREUOBJECT_API void UpdateDefaultConfigFile (const FString &SpecificFileLocation="")
 
COREUOBJECT_API bool TryUpdateDefaultConfigFile (const FString &SpecificFileLocation="", bool bWarnIfFail=true)
 
COREUOBJECT_API void UpdateGlobalUserConfigFile ()
 
COREUOBJECT_API void UpdateProjectUserConfigFile ()
 
COREUOBJECT_API void UpdateSinglePropertyInConfigFile (const FProperty *InProperty, const FString &InConfigIniName)
 
COREUOBJECT_API FString GetDefaultConfigFilename () const
 
COREUOBJECT_API FString GetGlobalUserConfigFilename () const
 
COREUOBJECT_API FString GetProjectUserConfigFilename () const
 
virtual const TCHARGetConfigOverridePlatform () const
 
virtual void OverrideConfigSection (FString &SectionName)
 
virtual void OverridePerObjectConfigSection (FString &SectionName)
 
COREUOBJECT_API void LoadConfig (UClass *ConfigClass=nullptr, const TCHAR *Filename=nullptr, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=nullptr, TArray< UE::ConfigAccessTracking::FConfigAccessData > *OutAccessedKeys=nullptr)
 
COREUOBJECT_API void ReloadConfig (UClass *ConfigClass=NULL, const TCHAR *Filename=NULL, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=NULL)
 
COREUOBJECT_API void ParseParms (const TCHAR *Parms)
 
COREUOBJECT_API void OutputReferencers (FOutputDevice &Ar, FReferencerInformationList *Referencers=NULL)
 
COREUOBJECT_API void RetrieveReferencers (TArray< FReferencerInformation > *OutInternalReferencers, TArray< FReferencerInformation > *OutExternalReferencers)
 
COREUOBJECT_API void SetLinker (FLinkerLoad *LinkerLoad, int32 LinkerIndex, bool bShouldDetachExisting=true, bool bSilenceLogs=false)
 
COREUOBJECT_API UObjectGetArchetype () const
 
COREUOBJECT_API void GetArchetypeInstances (TArray< UObject * > &Instances)
 
COREUOBJECT_API void InstanceSubobjectTemplates (struct FObjectInstancingGraph *InstanceGraph=NULL)
 
template<class T >
bool Implements () const
 
virtual COREUOBJECT_API void ProcessEvent (UFunction *Function, void *Parms)
 
virtual int32 GetFunctionCallspace (UFunction *Function, FFrame *Stack)
 
virtual bool CallRemoteFunction (UFunction *Function, void *Parms, struct FOutParmRec *OutParms, FFrame *Stack)
 
COREUOBJECT_API bool CallFunctionByNameWithArguments (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor, bool bForceCallWithNonExec=false)
 
COREUOBJECT_API void CallFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
 DECLARE_FUNCTION (ProcessInternal)
 
virtual bool ProcessConsoleExec (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor)
 
COREUOBJECT_API void SkipFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
virtual UClassRegenerateClass (UClass *ClassToRegenerate, UObject *PreviousCDO)
 
COREUOBJECT_API bool IsInBlueprint () const
 
COREUOBJECT_API void DestroyNonNativeProperties ()
 
virtual void MarkAsEditorOnlySubobject ()
 
COREUOBJECT_API void AbortInsideMemberFunction () const
 
 DECLARE_FUNCTION (execUndefined)
 
 DECLARE_FUNCTION (execLocalVariable)
 
 DECLARE_FUNCTION (execInstanceVariable)
 
 DECLARE_FUNCTION (execDefaultVariable)
 
 DECLARE_FUNCTION (execLocalOutVariable)
 
 DECLARE_FUNCTION (execInterfaceVariable)
 
 DECLARE_FUNCTION (execClassSparseDataVariable)
 
 DECLARE_FUNCTION (execInterfaceContext)
 
 DECLARE_FUNCTION (execArrayElement)
 
 DECLARE_FUNCTION (execBoolVariable)
 
 DECLARE_FUNCTION (execClassDefaultVariable)
 
 DECLARE_FUNCTION (execEndFunctionParms)
 
 DECLARE_FUNCTION (execNothing)
 
 DECLARE_FUNCTION (execNothingInt32)
 
 DECLARE_FUNCTION (execNothingOp4a)
 
 DECLARE_FUNCTION (execBreakpoint)
 
 DECLARE_FUNCTION (execTracepoint)
 
 DECLARE_FUNCTION (execWireTracepoint)
 
 DECLARE_FUNCTION (execInstrumentation)
 
 DECLARE_FUNCTION (execEndOfScript)
 
 DECLARE_FUNCTION (execReturnNothing)
 
 DECLARE_FUNCTION (execEmptyParmValue)
 
 DECLARE_FUNCTION (execJump)
 
 DECLARE_FUNCTION (execJumpIfNot)
 
 DECLARE_FUNCTION (execAssert)
 
 DECLARE_FUNCTION (execPushExecutionFlow)
 
 DECLARE_FUNCTION (execPopExecutionFlow)
 
 DECLARE_FUNCTION (execComputedJump)
 
 DECLARE_FUNCTION (execPopExecutionFlowIfNot)
 
 DECLARE_FUNCTION (execLet)
 
 DECLARE_FUNCTION (execLetObj)
 
 DECLARE_FUNCTION (execLetWeakObjPtr)
 
 DECLARE_FUNCTION (execLetBool)
 
 DECLARE_FUNCTION (execLetDelegate)
 
 DECLARE_FUNCTION (execLetMulticastDelegate)
 
 DECLARE_FUNCTION (execAddMulticastDelegate)
 
 DECLARE_FUNCTION (execClearMulticastDelegate)
 
 DECLARE_FUNCTION (execEatReturnValue)
 
 DECLARE_FUNCTION (execRemoveMulticastDelegate)
 
 DECLARE_FUNCTION (execSelf)
 
 DECLARE_FUNCTION (execContext)
 
 DECLARE_FUNCTION (execContext_FailSilent)
 
 DECLARE_FUNCTION (execStructMemberContext)
 
 DECLARE_FUNCTION (execVirtualFunction)
 
 DECLARE_FUNCTION (execFinalFunction)
 
 DECLARE_FUNCTION (execLocalVirtualFunction)
 
 DECLARE_FUNCTION (execLocalFinalFunction)
 
 DECLARE_FUNCTION (execStructCmpEq)
 
 DECLARE_FUNCTION (execStructCmpNe)
 
 DECLARE_FUNCTION (execStructMember)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execNotEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execNotEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execIntConst)
 
 DECLARE_FUNCTION (execInt64Const)
 
 DECLARE_FUNCTION (execUInt64Const)
 
 DECLARE_FUNCTION (execSkipOffsetConst)
 
 DECLARE_FUNCTION (execFloatConst)
 
 DECLARE_FUNCTION (execDoubleConst)
 
 DECLARE_FUNCTION (execStringConst)
 
 DECLARE_FUNCTION (execUnicodeStringConst)
 
 DECLARE_FUNCTION (execTextConst)
 
 DECLARE_FUNCTION (execPropertyConst)
 
 DECLARE_FUNCTION (execObjectConst)
 
 DECLARE_FUNCTION (execSoftObjectConst)
 
 DECLARE_FUNCTION (execFieldPathConst)
 
 DECLARE_FUNCTION (execInstanceDelegate)
 
 DECLARE_FUNCTION (execNameConst)
 
 DECLARE_FUNCTION (execByteConst)
 
 DECLARE_FUNCTION (execIntZero)
 
 DECLARE_FUNCTION (execIntOne)
 
 DECLARE_FUNCTION (execTrue)
 
 DECLARE_FUNCTION (execFalse)
 
 DECLARE_FUNCTION (execNoObject)
 
 DECLARE_FUNCTION (execNullInterface)
 
 DECLARE_FUNCTION (execIntConstByte)
 
 DECLARE_FUNCTION (execRotationConst)
 
 DECLARE_FUNCTION (execVectorConst)
 
 DECLARE_FUNCTION (execVector3fConst)
 
 DECLARE_FUNCTION (execTransformConst)
 
 DECLARE_FUNCTION (execStructConst)
 
 DECLARE_FUNCTION (execSetArray)
 
 DECLARE_FUNCTION (execSetSet)
 
 DECLARE_FUNCTION (execSetMap)
 
 DECLARE_FUNCTION (execArrayConst)
 
 DECLARE_FUNCTION (execSetConst)
 
 DECLARE_FUNCTION (execMapConst)
 
 DECLARE_FUNCTION (execBitFieldConst)
 
 DECLARE_FUNCTION (execNew)
 
 DECLARE_FUNCTION (execClassContext)
 
 DECLARE_FUNCTION (execNativeParm)
 
 DECLARE_FUNCTION (execCast)
 
 DECLARE_FUNCTION (execDynamicCast)
 
 DECLARE_FUNCTION (execMetaCast)
 
 DECLARE_FUNCTION (execInterfaceCast)
 
 DECLARE_FUNCTION (execDoubleToFloatCast)
 
 DECLARE_FUNCTION (execFloatToDoubleCast)
 
 DECLARE_FUNCTION (execObjectToBool)
 
 DECLARE_FUNCTION (execInterfaceToBool)
 
 DECLARE_FUNCTION (execObjectToInterface)
 
 DECLARE_FUNCTION (execInterfaceToInterface)
 
 DECLARE_FUNCTION (execInterfaceToObject)
 
 DECLARE_FUNCTION (execGetDynArrayElement)
 
 DECLARE_FUNCTION (execSetDynArrayElement)
 
 DECLARE_FUNCTION (execGetDynArrayLength)
 
 DECLARE_FUNCTION (execSetDynArrayLength)
 
 DECLARE_FUNCTION (execDynArrayInsert)
 
 DECLARE_FUNCTION (execDynArrayRemove)
 
 DECLARE_FUNCTION (execDynArrayFind)
 
 DECLARE_FUNCTION (execDynArrayFindStruct)
 
 DECLARE_FUNCTION (execDynArrayAdd)
 
 DECLARE_FUNCTION (execDynArrayAddItem)
 
 DECLARE_FUNCTION (execDynArrayInsertItem)
 
 DECLARE_FUNCTION (execDynArrayRemoveItem)
 
 DECLARE_FUNCTION (execDynArraySort)
 
 DECLARE_FUNCTION (execBindDelegate)
 
 DECLARE_FUNCTION (execCallMulticastDelegate)
 
 DECLARE_FUNCTION (execLetValueOnPersistentFrame)
 
 DECLARE_FUNCTION (execCallMathFunction)
 
 DECLARE_FUNCTION (execSwitchValue)
 
 DECLARE_FUNCTION (execArrayGetByRef)
 
 DECLARE_FUNCTION (execAutoRtfmTransact)
 
 DECLARE_FUNCTION (execAutoRtfmStopTransact)
 
 DECLARE_FUNCTION (execAutoRtfmAbortIfNot)
 
void ExecuteUbergraph (int32 EntryPoint)
 
virtual void ValidateGeneratedRepEnums (const TArray< struct FRepRecord > &ClassReps) const
 
virtual uint64 GetNetPushIdDynamic () const
 
- Public Member Functions inherited from UObjectBaseUtility
 UObjectBaseUtility ()
 
 UObjectBaseUtility (EObjectFlags InFlags)
 
void SetFlags (EObjectFlags NewFlags)
 
void ClearFlags (EObjectFlags FlagsToClear)
 
bool HasAnyFlags (EObjectFlags FlagsToCheck) const
 
bool HasAllFlags (EObjectFlags FlagsToCheck) const
 
UE_FORCEINLINE_HINT EObjectFlags GetMaskedFlags (EObjectFlags Mask=RF_AllFlags) const
 
UE_FORCEINLINE_HINT void Mark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT void UnMark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAnyMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAllMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT EObjectMark GetAllMarks () const
 
void MarkAsGarbage ()
 
void ClearGarbage ()
 
UE_FORCEINLINE_HINT void AddToRoot ()
 
UE_FORCEINLINE_HINT void RemoveFromRoot ()
 
UE_FORCEINLINE_HINT bool IsRooted () const
 
UE_FORCEINLINE_HINT int32 GetRefCount () const
 
bool ThisThreadAtomicallyClearedRFUnreachable ()
 
UE_FORCEINLINE_HINT bool IsUnreachable () const
 
UE_FORCEINLINE_HINT bool IsNative () const
 
void SetInternalFlags (EInternalObjectFlags FlagsToSet) const
 
UE_FORCEINLINE_HINT EInternalObjectFlags GetInternalFlags () const
 
UE_FORCEINLINE_HINT bool HasAnyInternalFlags (EInternalObjectFlags FlagsToCheck) const
 
void ClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
bool AtomicallyClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
COREUOBJECT_API FString GetFullName (const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (const UObject *StopOuter, FString &ResultString, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (FStringBuilderBase &ResultString, const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API FString GetPathName (const UObject *StopOuter=NULL) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FString &ResultString) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FStringBuilderBase &ResultString) const
 
virtual bool CanBeClusterRoot () const
 
virtual COREUOBJECT_API bool CanBeInCluster () const
 
virtual COREUOBJECT_API void CreateCluster ()
 
virtual void OnClusterMarkedAsPendingKill ()
 
COREUOBJECT_API void AddToCluster (UObjectBaseUtility *ClusterRootOrObjectFromCluster, bool bAddAsMutableObject=false)
 
COREUOBJECT_API FString GetFullGroupName (bool bStartWithOuter) const
 
UE_FORCEINLINE_HINT FString GetName () const
 
UE_FORCEINLINE_HINT void GetName (FString &ResultString) const
 
UE_FORCEINLINE_HINT void AppendName (FString &ResultString) const
 
COREUOBJECT_API bool IsPackageExternal () const
 
COREUOBJECT_API void DetachExternalPackage ()
 
COREUOBJECT_API void ReattachExternalPackage ()
 
COREUOBJECT_API UObjectGetOutermostObject () const
 
COREUOBJECT_API UPackageGetPackage () const
 
UE_INTERNAL virtual COREUOBJECT_API UE::Core::FVersePath GetVersePath () const
 
COREUOBJECT_API UPackageGetOutermost () const
 
COREUOBJECT_API bool MarkPackageDirty () const
 
COREUOBJECT_API bool IsTemplate (EObjectFlags TemplateTypes=RF_ArchetypeObject|RF_ClassDefaultObject) const
 
COREUOBJECT_API UObjectGetTypedOuter (UClass *Target) const
 
template<typename T >
T * GetTypedOuter () const
 
template<typename InterfaceClassType >
InterfaceClassTypeGetImplementingOuter () const
 
COREUOBJECT_API UObjectBaseUtilityGetImplementingOuterObject (const UClass *InInterfaceClass) const
 
COREUOBJECT_API bool IsIn (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsIn (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInOuter (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsInPackage (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInA (const UClass *SomeBaseClass) const
 
COREUOBJECT_API bool RootPackageHasAnyFlags (uint32 CheckFlagMask) const
 
template<typename OtherClassType >
bool IsA (OtherClassType SomeBase) const
 
template<class T >
bool IsA () const
 
COREUOBJECT_API const UClassFindNearestCommonBaseClass (const UClass *TestClass) const
 
COREUOBJECT_API voidGetInterfaceAddress (UClass *InterfaceClass)
 
COREUOBJECT_API voidGetNativeInterfaceAddress (UClass *InterfaceClass)
 
const voidGetNativeInterfaceAddress (UClass *InterfaceClass) const
 
COREUOBJECT_API bool IsTemplateForSubobjects (EObjectFlags TemplateTypes=RF_ClassDefaultObject|RF_DefaultSubObject|RF_InheritableComponentTemplate) const
 
COREUOBJECT_API bool IsDefaultSubobject () const
 
COREUOBJECT_API class FLinkerLoadGetLinker () const
 
COREUOBJECT_API int32 GetLinkerIndex () const
 
COREUOBJECT_API FPackageFileVersion GetLinkerUEVersion () const
 
int32 GetLinkerUE4Version () const
 
COREUOBJECT_API int32 GetLinkerLicenseeUEVersion () const
 
int32 GetLinkerLicenseeUE4Version () const
 
COREUOBJECT_API int32 GetLinkerCustomVersion (FGuid CustomVersionKey) const
 
UE_FORCEINLINE_HINT bool operator< (const UObjectBaseUtility &Other) const
 
TStatId GetStatID (bool bForDeferredUse=false) const
 
- Public Member Functions inherited from UObjectBase
COREUOBJECT_API UObjectBase (UClass *InClass, EObjectFlags InFlags, EInternalObjectFlags InInternalFlags, UObject *InOuter, FName InName, int32 InInternalIndex=-1, int32 InSerialNumber=0, FRemoteObjectId InRemoteId=FRemoteObjectId())
 
virtual COREUOBJECT_API ~UObjectBase ()
 
COREUOBJECT_API bool IsValidLowLevel () const
 
COREUOBJECT_API bool IsValidLowLevelFast (bool bRecursive=true) const
 
FORCEINLINE uint32 GetUniqueID () const
 
FORCEINLINE UClassGetClass () const
 
FORCEINLINE UObjectGetOuter () const
 
FORCEINLINE FName GetFName () const
 
virtual COREUOBJECT_API FName GetFNameForStatID () const
 
COREUOBJECT_API UPackageGetExternalPackage () const
 
COREUOBJECT_API void SetExternalPackage (UPackage *InPackage)
 
COREUOBJECT_API UPackageGetExternalPackageInternal () const
 
COREUOBJECT_API void MarkAsReachable () const
 
COREUOBJECT_API void AddRef () const
 
COREUOBJECT_API void ReleaseRef () const
 
FORCEINLINE EObjectFlags GetFlags () const
 
FORCENOINLINE void AtomicallySetFlags (EObjectFlags FlagsToAdd)
 
FORCENOINLINE void AtomicallyClearFlags (EObjectFlags FlagsToClear)
 

Static Public Member Functions

static COREUOBJECT_API void AssembleReferenceTokenStreams ()
 
static COREUOBJECT_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
static COREUOBJECT_API UFieldTryFindTypeSlow (UClass *TypeClass, FStringView InPathNameOrShortName, EFindFirstObjectOptions InOptions=EFindFirstObjectOptions::None)
 
template<typename T >
static T * TryFindTypeSlow (FStringView InShortNameOrPathName, EFindFirstObjectOptions InOptions=EFindFirstObjectOptions::None)
 
static COREUOBJECT_API UFieldTryFindTypeSlowSafe (UClass *TypeClass, FStringView InPathNameOrShortName, EFindFirstObjectOptions InOptions=EFindFirstObjectOptions::None)
 
template<typename T >
static T * TryFindTypeSlowSafe (FStringView InShortNameOrPathName, EFindFirstObjectOptions InOptions=EFindFirstObjectOptions::None)
 
static COREUOBJECT_API FTopLevelAssetPath TryConvertShortTypeNameToPathName (UClass *TypeClass, FStringView InShortTypeName, ELogVerbosity::Type AmbiguousMessageVerbosity=ELogVerbosity::NoLogging, const TCHAR *AmbiguousClassMessage=nullptr)
 
template<typename T >
static FTopLevelAssetPath TryConvertShortTypeNameToPathName (FStringView InShortTypeName, ELogVerbosity::Type AmbiguousMessageVerbosity=ELogVerbosity::NoLogging, const TCHAR *AmbiguousClassMessage=nullptr)
 
static COREUOBJECT_API bool TryFixShortClassNameExportPath (FString &InOutExportPathToFix, ELogVerbosity::Type AmbiguousMessageVerbosity=ELogVerbosity::NoLogging, const TCHAR *AmbiguousClassMessage=nullptr, bool bClearOnError=false)
 
static COREUOBJECT_API FString ConvertPathNameToShortTypeName (FStringView InClassPathOrShortTypeName)
 
static COREUOBJECT_API FString ConvertFullNameToShortTypeFullName (FStringView InFullName)
 
static COREUOBJECT_API bool IsShortTypeName (FStringView ClassPathOrShortTypeName)
 
static COREUOBJECT_API class FFeedbackContextGetDefaultPropertiesFeedbackContext ()
 
static COREUOBJECT_API UClassFindCommonBase (UClass *InClassA, UClass *InClassB)
 
static COREUOBJECT_API UClassFindCommonBase (const TArray< UClass * > &InClasses)
 
static COREUOBJECT_API bool IsSafeToSerializeToStructuredArchives (UClass *InClass)
 
- Static Public Member Functions inherited from UStruct
static COREUOBJECT_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
- Static Public Member Functions inherited from UObject
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedServer (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedClient (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API bool CanCreateInCurrentContext (UObject *Template)
 
static COREUOBJECT_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
static COREUOBJECT_API const FNameSourceFileTagName ()
 
static COREUOBJECT_API UObjectGetArchetypeFromRequiredInfo (const UClass *Class, const UObject *Outer, FName Name, EObjectFlags ObjectFlags)
 
- Static Public Member Functions inherited from UObjectBaseUtility
static bool IsGarbageEliminationEnabled ()
 
static bool IsPendingKillEnabled ()
 
static void SetGarbageEliminationEnabled (bool bEnabled)
 
static COREUOBJECT_API void ReloadObjectsFromModifiedConfigSections (const class FConfigModificationTracker *ChangeTracker)
 
- Static Public Member Functions inherited from UObjectBase
static COREUOBJECT_API FString RemoveClassPrefix (const TCHAR *ClassName)
 
static void PrefetchClass (UObject *Object)
 
static void PrefetchOuter (UObject *Object)
 

Public Attributes

ClassConstructorType ClassConstructor
 
ClassVTableHelperCtorCallerType ClassVTableHelperCtorCaller
 
FUObjectCppClassStaticFunctions CppClassStaticFunctions
 
int32 ClassUnique
 
int32 FirstOwnedClassRep = 0
 
bool bCooked
 
bool bLayoutChanging
 
EClassFlags ClassFlags
 
EClassCastFlags ClassCastFlags
 
TObjectPtr< UClassClassWithin
 
union { 
 
   FName   ClassConfigName = {} 
 
};  
 
TArray< FRepRecordClassReps
 
TArray< TObjectPtr< UField > > NetFields
 
union { 
 
   TArray< FImplementedInterface >   Interfaces = {} 
 
};  
 
UE::GC::FSchemaOwner ReferenceSchema
 
union { 
 
   TArray< FNativeFunctionLookup >   NativeFunctionLookupTable = {} 
 
};  
 
- Public Attributes inherited from UStruct
TObjectPtr< UFieldChildren
 
FFieldChildProperties
 
int32 PropertiesSize
 
int16 MinAlignment
 
union { 
 
   TArray< uint8 >   Script = {} 
 
};  
 
FPropertyPropertyLink
 
FPropertyRefLink
 
FPropertyDestructorLink
 
FPropertyPostConstructLink
 
TArray< TObjectPtr< UObject > > ScriptAndPropertyObjectReferences
 
FUnresolvedScriptPropertiesArrayUnresolvedScriptProperties
 
std::atomic< const struct FUnversionedStructSchema * > UnversionedGameSchema = nullptr
 
- Public Attributes inherited from UField
TObjectPtr< UFieldNext
 

Protected Member Functions

COREUOBJECT_API voidCreateSparseClassData ()
 
COREUOBJECT_API void CleanupSparseClassData ()
 
virtual COREUOBJECT_API UObjectCreateDefaultObject ()
 
- Protected Member Functions inherited from UStruct
virtual FName FindPropertyNameFromGuid (const FGuid &PropertyGuid) const
 
virtual FGuid FindPropertyGuidFromName (const FName InName) const
 
virtual bool ArePropertyGuidsAvailable () const
 
COREUOBJECT_API void SerializeProperties (FArchive &Ar)
 
COREUOBJECT_API void LoadTaggedPropertiesFromText (FStructuredArchive::FSlot Slot, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults, const UObject *BreakRecursionIfFullyLoad) const
 
- Protected Member Functions inherited from UObject
virtual FString GetDetailedInfoInternal () const
 
COREUOBJECT_API bool CanCheckDefaultSubObjects (bool bForceCheck, bool &bResult) const
 
virtual COREUOBJECT_API bool CheckDefaultSubobjectsInternal () const
 
- Protected Member Functions inherited from UObjectBase
 UObjectBase ()
 
COREUOBJECT_API UObjectBase (EObjectFlags InFlags)
 
COREUOBJECT_API void LowLevelRename (FName NewName, UObject *NewOuter=NULL)
 
COREUOBJECT_API void Register (class UClass *(*StaticClassFn)(), const TCHAR *PackageName, const TCHAR *Name)
 
COREUOBJECT_API void Register (const TCHAR *PackageName, const TCHAR *Name)
 
FORCEINLINE void SetFlagsTo (EObjectFlags NewFlags)
 

Protected Attributes

voidSparseClassData
 
TObjectPtr< UScriptStructSparseClassDataStruct
 
bool bNeedsDynamicSubobjectInstancing = false
 

Friends

class FRestoreClassInfo
 
class FBlueprintEditorUtils
 
class FBlueprintCompileReinstancer
 
struct FBlueprintCompilationManagerImpl
 

Detailed Description

An object class.

Member Typedef Documentation

◆ ClassConstructorType

typedef void(* UClass::ClassConstructorType) (const FObjectInitializer &)

◆ ClassVTableHelperCtorCallerType

typedef UObject *(* UClass::ClassVTableHelperCtorCallerType) (FVTableHelper &Helper)

◆ StaticClassFunctionType

typedef UClass *(* UClass::StaticClassFunctionType) ()

Constructor & Destructor Documentation

◆ UClass() [1/3]

UClass::UClass ( const FObjectInitializer ObjectInitializer = FObjectInitializer::Get())

Internal constructor.

◆ UClass() [2/3]

UClass::UClass ( const FObjectInitializer ObjectInitializer,
UClass InBaseClass 
)
explicit

Create a new UClass given its superclass.

◆ UClass() [3/3]

UClass::UClass ( EStaticConstructor  ,
FName  InName,
uint32  InSize,
uint32  InAlignment,
EClassFlags  InClassFlags,
EClassCastFlags  InClassCastFlags,
const TCHAR InConfigName,
EObjectFlags  InFlags,
ClassConstructorType  InClassConstructor,
ClassVTableHelperCtorCallerType  InClassVTableHelperCtorCaller,
FUObjectCppClassStaticFunctions &&  InCppClassStaticFunctions 
)

Called when statically linked.

◆ ~UClass()

UClass::~UClass ( )

Member Function Documentation

◆ AddDefaultSubobject()

void UClass::AddDefaultSubobject ( UObject NewSubobject,
const UClass BaseClass 
)
inline

Adds a new default instance map item

◆ AddFunctionToFunctionMap()

void UClass::AddFunctionToFunctionMap ( UFunction Function,
FName  FuncName 
)
inline

Add a function to the function map

◆ AddNativeFunction() [1/2]

void UClass::AddNativeFunction ( const ANSICHAR InName,
FNativeFuncPtr  InPointer 
)

Add a native function to the internal native function table

Parameters
InNamename of the function
InPointerpointer to the function

◆ AddNativeFunction() [2/2]

void UClass::AddNativeFunction ( const WIDECHAR InName,
FNativeFuncPtr  InPointer 
)

Add a native function to the internal native function table, but with a unicode name. Used when generating code from blueprints, which can have unicode identifiers for functions and properties.

Parameters
InNamename of the function
InPointerpointer to the function

◆ AddReferencedObjects()

void UClass::AddReferencedObjects ( UObject InThis,
FReferenceCollector Collector 
)
static

Callback used to allow an object to register its direct object references that are not already covered by the token stream.

Parameters
ObjectArrayarray to add referenced objects to via AddReferencedObject

◆ AssembleReferenceTokenStream()

void UClass::AssembleReferenceTokenStream ( bool  bForce = false)

Assembles the token stream for realtime garbage collection by combining the per class only token stream for each class in the class hierarchy. This is only done once and duplicate work is avoided by using an object flag.

Parameters
bForceAssemble the stream even if it has been already assembled (deletes the old one)

◆ AssembleReferenceTokenStreams()

void UClass::AssembleReferenceTokenStreams ( )
static

Assemble reference token streams for all classes if they haven't had it assembled already

◆ Bind()

void UClass::Bind ( )
overridevirtual

Find the class's native constructor.

Reimplemented from UField.

Reimplemented in ULinkerPlaceholderClass, and UBlueprintGeneratedClass.

◆ CallAddReferencedObjects()

void UClass::CallAddReferencedObjects ( UObject This,
FReferenceCollector Collector 
) const
inline

Calls AddReferencedObjects static method on the specified object.

Parameters
ThisObject to call ARO on.
CollectorReference collector.

◆ CanCreateAssetOfClass()

virtual bool UClass::CanCreateAssetOfClass ( ) const
inlinevirtual

Some classes may not support creating assets of their type

◆ CheckDefaultObjectIsValidLowLevelFast()

bool UClass::CheckDefaultObjectIsValidLowLevelFast ( const int32  AlignmentCheck) const
inline

Checks if the class default object is valid (not null and its address is a properly aligned pointer)

Parameters
AlignmentCheckaddress alignment to check
Returns
true if the CDO is valid

◆ CleanupSparseClassData()

void UClass::CleanupSparseClassData ( )
protected

◆ ClearFunctionMapsCaches()

void UClass::ClearFunctionMapsCaches ( )

Clears the function name caches, in case things have changed

◆ ClearSparseClassDataStruct()

void UClass::ClearSparseClassDataStruct ( bool  bInRecomplingOnLoad)

Clears the sparse class data struct for this and all child classes that directly reference it as a super-struct This will rename the current sparse class data struct aside into the transient package

◆ ConvertFullNameToShortTypeFullName()

FString UClass::ConvertFullNameToShortTypeFullName ( FStringView  InFullName)
static

Takes a FullName (from e.g. AssetData.GetFullName or UObject.GetFullName) in either ShortTypeFullName or PathFullName form ShortTypeFullName: "ClassObjectName /PackagePath/PackageShortName.ObjectName:SubObjectName" PathFullName: "/ClassPath/ClassPackage.ClassObjectName /PackagePath/PackageShortName.ObjectName:SubObjectName" Converts it to ShortTypeFullName if not already in that format and returns it

◆ ConvertPathNameToShortTypeName()

FString UClass::ConvertPathNameToShortTypeName ( FStringView  InClassPathOrShortTypeName)
static

Returns the ObjectName portion of a ClassPath name: "/Path/To.Object" is converted to "Object". Returns the full string if it is already a ShortTypeName.

◆ CreateDefaultObject()

UObject * UClass::CreateDefaultObject ( )
protectedvirtual

Get the default object from the class, creating it if missing, if requested or under a few other circumstances

Returns
the CDO for this class

◆ CreateLinkAndAddChildFunctionsToMap()

void UClass::CreateLinkAndAddChildFunctionsToMap ( const FClassFunctionLinkInfo Functions,
uint32  NumFunctions 
)

◆ CreatePersistentUberGraphFrame()

virtual void UClass::CreatePersistentUberGraphFrame ( UObject Obj,
bool  bCreateOnlyIfEmpty = false,
bool  bSkipSuperClass = false,
UClass OldClass = nullptr 
) const
inlinevirtual

Creates memory to store temporary data

Reimplemented in UBlueprintGeneratedClass.

◆ CreateSparseClassData()

void * UClass::CreateSparseClassData ( )
protected

◆ DeferredRegister()

void UClass::DeferredRegister ( UClass UClassStaticClass,
const TCHAR PackageName,
const TCHAR InName 
)
overridevirtual

Convert a boot-strap registered class into a real one, add to uobject array, etc

Parameters
UClassStaticClassNow that it is known, fill in UClass::StaticClass() as the class

Convert a boot-strap registered class into a real one, add to uobject array, etc

Parameters
UClassStaticClassNow that it is known, fill in ClassPrivate. This is usually UClass::StaticClass.

Reimplemented from UObjectBase.

◆ DestroyPersistentUberGraphFrame()

virtual void UClass::DestroyPersistentUberGraphFrame ( UObject Obj,
bool  bSkipSuperClass = false 
) const
inlinevirtual

Clears memory to store temporary data

Reimplemented in UBlueprintGeneratedClass.

◆ FindArchetype()

virtual UObject * UClass::FindArchetype ( const UClass ArchetypeClass,
const FName  ArchetypeName 
) const
inlinevirtual

Finds the object that is used as the parent object when serializing properties, overridden for blueprints

Reimplemented in UBlueprintGeneratedClass.

◆ FindCommonBase() [1/2]

UClass * UClass::FindCommonBase ( const TArray< UClass * > &  InClasses)
static

Finds the common base class that parents the array of classes passed in.

Parameters
InClassesthe array of classes to find the common base for
Returns
the common base class or NULL

◆ FindCommonBase() [2/2]

UClass * UClass::FindCommonBase ( UClass InClassA,
UClass InClassB 
)
static

Finds the common base class that parents the two classes passed in.

Parameters
InClassAthe first class to find the common base for
InClassBthe second class to find the common base for
Returns
the common base class or NULL

◆ FindFunctionByName()

UFunction * UClass::FindFunctionByName ( FName  InName,
EIncludeSuperFlag::Type  IncludeSuper = EIncludeSuperFlag::IncludeSuper 
) const

Looks for a given function name

◆ FinishDestroy()

void UClass::FinishDestroy ( )
overridevirtual

Called to finish destroying the object. After UObject::FinishDestroy is called, the object's memory should no longer be accessed.

Warning
Because properties are destroyed here, Super::FinishDestroy() should always be called at the end of your child class's FinishDestroy() method, rather than at the beginning.

Reimplemented from UStruct.

◆ GetArchetypeForCDO()

UObject * UClass::GetArchetypeForCDO ( ) const
virtual

Returns archetype object for CDO

◆ GetArchetypeForSparseClassData()

const void * UClass::GetArchetypeForSparseClassData ( const EGetSparseClassDataMethod  GetMethod = EGetSparseClassDataMethod::ArchetypeIfNull) const

Returns archetype for sparse class data

◆ GetAssetRegistryTags() [1/2]

void UClass::GetAssetRegistryTags ( FAssetRegistryTagsContext  Context) const
overridevirtual

Gathers a list of asset registry searchable tags which are name/value pairs with some type information This only needs to be implemented for asset objects

Parameters
OutTagsA list of key-value pairs associated with this object and their types

Reimplemented from UObject.

Reimplemented in UBlueprintGeneratedClass.

◆ GetAssetRegistryTags() [2/2]

void UClass::GetAssetRegistryTags ( TArray< FAssetRegistryTag > &  OutTags) const
overridevirtual

Reimplemented from UObject.

Reimplemented in UBlueprintGeneratedClass.

◆ GetAuthoritativeClass() [1/2]

UClass * UClass::GetAuthoritativeClass ( )
virtual

If there are potentially multiple versions of this class (e.g. blueprint generated classes), this function will return the authoritative version, which should be used for references

Returns
The version of this class that references should be stored to

◆ GetAuthoritativeClass() [2/2]

const UClass * UClass::GetAuthoritativeClass ( ) const
inline

◆ GetClassFlags()

UE_FORCEINLINE_HINT EClassFlags UClass::GetClassFlags ( ) const
inline

Gets the class flags.

Returns
The class flags.

◆ GetClassPathName()

UE_FORCEINLINE_HINT FTopLevelAssetPath UClass::GetClassPathName ( ) const
inline

Returns class path name as a package + class FName pair

◆ GetConfigName()

const FString UClass::GetConfigName ( ) const

Translates the hardcoded script config names (engine, editor, input and game) to their global pendants and otherwise uses config(myini) name to look for a game specific implementation and creates one based on the default if it doesn't exist yet.

Returns
name of the class specific ini file

◆ GetDefaultObject() [1/2]

template<class T >
T * UClass::GetDefaultObject ( ) const
inline

Get the default object from the class and cast to a particular type

Returns
the CDO for this class

◆ GetDefaultObject() [2/2]

UObject * UClass::GetDefaultObject ( bool  bCreateIfNeeded = true) const
inline

Get the default object from the class

Parameters
bCreateIfNeededif true (default) then the CDO is created if it is null
Returns
the CDO for this class

◆ GetDefaultObjectName()

FName UClass::GetDefaultObjectName ( ) const

Get the name of the CDO for the this class

Returns
The name of the CDO

◆ GetDefaultObjectPreloadDependencies()

virtual void UClass::GetDefaultObjectPreloadDependencies ( TArray< UObject * > &  OutDeps)
inlinevirtual

Returns all objects that should be preloaded before the class default object is serialized at load time. Only used by the EDL.

Parameters
OutDepsAll objects that should be preloaded before the class default object is serialized at load time.

Reimplemented in UBlueprintGeneratedClass.

◆ GetDefaultObjectSubobjects()

void UClass::GetDefaultObjectSubobjects ( TArray< UObject * > &  OutDefaultSubobjects)

Gets all default instanced objects (often components).

Parameters
OutDefaultSubobjectsAn array to be filled with default subobjects.

◆ GetDefaultPropertiesFeedbackContext()

FFeedbackContext & UClass::GetDefaultPropertiesFeedbackContext ( )
static

Feedback context for default property import

◆ GetDefaultsCount()

int32 UClass::GetDefaultsCount ( )
inline

Returns amount of memory used by default object

◆ GetDefaultSubobjectByName()

UObject * UClass::GetDefaultSubobjectByName ( FName  ToFind)

Searches for the default instanced object (often a component) by name

◆ GetDesc()

FString UClass::GetDesc ( void  )
overridevirtual

Return a one line description of an object for viewing in the thumbnail view of the generic browser

Reimplemented from UObject.

◆ GetDescription()

FString UClass::GetDescription ( ) const

◆ GetOrCreateSparseClassData()

void * UClass::GetOrCreateSparseClassData ( )
inline

Returns a pointer to the sidecar data structure. This function will create an instance of the data structure if one has been specified and it has not yet been created.

◆ GetPersistentUberGraphFrame()

virtual uint8 * UClass::GetPersistentUberGraphFrame ( UObject Obj,
UFunction FuncToCheck 
) const
inlinevirtual

Returns memory used to store temporary data on an instance, used by blueprints

Reimplemented in UAnimBlueprintGeneratedClass, and UBlueprintGeneratedClass.

◆ GetPrefixCPP()

const TCHAR * UClass::GetPrefixCPP ( ) const
overridevirtual

Returns the struct/ class prefix used for the C++ declaration of this struct/ class. Classes deriving from AActor have an 'A' prefix and other UObject classes an 'U' prefix.

Returns
Prefix character used for C++ declaration of this struct/ class.

Reimplemented from UStruct.

◆ GetPreloadDependencies()

void UClass::GetPreloadDependencies ( TArray< UObject * > &  OutDeps)
overridevirtual

Called during cooking. Must return all objects that will be Preload()ed when this is serialized at load time. Only used by the EDL.

Parameters
OutDepsall objects that will be preloaded when this is serialized at load time

Reimplemented from UStruct.

Reimplemented in UBlueprintGeneratedClass.

◆ GetPropertyLinkFlags()

EStructPropertyLinkFlags UClass::GetPropertyLinkFlags ( UStruct ContainerStruct,
FProperty Property 
) const
virtual

◆ GetRestoreForUObjectOverwrite()

FRestoreForUObjectOverwrite * UClass::GetRestoreForUObjectOverwrite ( )
overridevirtual

Save information for StaticAllocateObject in the case of overwriting an existing object. StaticAllocateObject will call delete on the result after calling Restore()

Returns
An FRestoreForUObjectOverwrite that can restore the object or NULL if this is not necessary.

Reimplemented from UObject.

◆ GetSparseClassData()

const void * UClass::GetSparseClassData ( const EGetSparseClassDataMethod  GetMethod)

Returns a pointer to the sidecar data structure, based on the EGetSparseClassDataMethod.

Note
It is only safe to mutate this data when using "CreateIfNull", as others may return archetype/default data; consider GetOrCreateSparseClassData for this use-case.

◆ GetSparseClassDataArchetypeStruct()

UScriptStruct * UClass::GetSparseClassDataArchetypeStruct ( ) const

Returns the struct used by the sparse class data archetype

◆ GetSparseClassDataStruct()

UScriptStruct * UClass::GetSparseClassDataStruct ( ) const

Returns a pointer to the type of the sidecar data structure if one is specified.

◆ GetSuperClass()

UClass * UClass::GetSuperClass ( ) const
inline

Returns parent class, the parent of a Class is always another class

◆ HasAllCastFlags()

UE_FORCEINLINE_HINT bool UClass::HasAllCastFlags ( EClassCastFlags  FlagsToCheck) const
inline

◆ HasAllClassFlags()

UE_FORCEINLINE_HINT bool UClass::HasAllClassFlags ( EClassFlags  FlagsToCheck) const
inline

Used to safely check whether all of the passed in flags are set.

Parameters
FlagsToCheckClass flags to check for
Returns
true if all of the passed in flags are set (including no flags passed in), false otherwise

◆ HasAnyCastFlag()

UE_FORCEINLINE_HINT bool UClass::HasAnyCastFlag ( EClassCastFlags  FlagToCheck) const
inline

Used to safely check whether the passed in flag is set.

Parameters
FlagToCheckthe cast flag to check for (value should be one of the EClassCastFlags enums)
Returns
true if the passed in flag is set, false otherwise (including no flag passed in)

◆ HasAnyClassFlags()

UE_FORCEINLINE_HINT bool UClass::HasAnyClassFlags ( EClassFlags  FlagsToCheck) const
inline

Used to safely check whether the passed in flag is set.

Parameters
FlagsToCheckClass flag(s) to check for
Returns
true if the passed in flag is set, false otherwise (including no flag passed in, unless the FlagsToCheck is CLASS_AllFlags)

◆ HasProperty()

bool UClass::HasProperty ( const FProperty InProperty) const
virtual

Checks if the property exists on this class or a parent class.

Parameters
InPropertyThe property to check if it is contained in this or a parent class.
Returns
True if the property exists on this or a parent class.

◆ ImplementsInterface()

bool UClass::ImplementsInterface ( const class UClass SomeInterface) const

This will return whether or not this class implements the passed in class / interface

Parameters
SomeClass- the interface to check and see if this class implements it

◆ InitPropertiesFromCustomList()

virtual void UClass::InitPropertiesFromCustomList ( uint8 DataPtr,
const uint8 DefaultDataPtr 
)
inlinevirtual

Helper method to assist with initializing object properties from an explicit list.

Parameters
InStructthe current scope for which the given property list applies
DataPtrdestination address (where to start copying values to)
DefaultDataPtrsource address (where to start copying the defaults data from)

Reimplemented in UBlueprintGeneratedClass.

◆ IsAsset()

virtual bool UClass::IsAsset ( ) const
inlineoverridevirtual

Returns true if this object is considered an asset.

Reimplemented from UObject.

Reimplemented in UBlueprintGeneratedClass.

◆ IsFunctionImplementedInScript()

bool UClass::IsFunctionImplementedInScript ( FName  InFunctionName) const
virtual

Determines if the specified function has been implemented in a Blueprint

Parameters
InFunctionNameThe name of the function to test
Returns
True if the specified function exists and is implemented in a blueprint generated class

Reimplemented in UBlueprintGeneratedClass.

◆ IsNameStableForNetworking()

virtual bool UClass::IsNameStableForNetworking ( ) const
inlineoverridevirtual

IsNameStableForNetworking means an object can be referred to its path name (relative to outer) over the network

Reimplemented from UObject.

◆ IsSafeToSerializeToStructuredArchives()

bool UClass::IsSafeToSerializeToStructuredArchives ( UClass InClass)
static

Helper function for determining if the given class is compatible with structured archive serialization

◆ IsShortTypeName()

bool UClass::IsShortTypeName ( FStringView  ClassPathOrShortTypeName)
static

Returns whether the given stringview is in ShortTypeName form: No directory separators "/" or object separators ".", SUBOBJECT_DELIMITER Returns true for empty string.

◆ IsStructTrashed()

bool UClass::IsStructTrashed ( ) const
overridevirtual

If true, this class has been cleaned and sanitized (trashed) and should not be used

Reimplemented from UStruct.

◆ Link()

void UClass::Link ( FArchive Ar,
bool  bRelinkExistingProperties 
)
overridevirtual

Creates the field/property links and gets structure ready for use at runtime

Reimplemented from UStruct.

Reimplemented in UAnimBlueprintGeneratedClass, and UBlueprintGeneratedClass.

◆ PostInitInstance()

virtual void UClass::PostInitInstance ( UObject InObj,
FObjectInstancingGraph InstanceGraph 
)
inlinevirtual

Called after PostInitProperties during object construction to allow class specific initialization of an object instance.

◆ PostInitProperties()

void UClass::PostInitProperties ( )
overridevirtual

Called after the C++ constructor and after the properties have been initialized, including those loaded from config. This is called before any serialization or other setup has happened.

Reimplemented from UObject.

Reimplemented in UBlueprintGeneratedClass.

◆ PostLoad()

void UClass::PostLoad ( )
overridevirtual

Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.

Reimplemented from UStruct.

Reimplemented in UAnimBlueprintGeneratedClass, UBlueprintGeneratedClass, and UWidgetBlueprintGeneratedClass.

◆ PostLoadDefaultObject()

void UClass::PostLoadDefaultObject ( UObject Object)
virtual

Wraps the PostLoad() call for the class default object.

Parameters
Objectthe default object to call PostLoad() on

Reimplemented in UAnimBlueprintGeneratedClass, and UBlueprintGeneratedClass.

◆ PostLoadInstance()

virtual void UClass::PostLoadInstance ( UObject InObj)
inlinevirtual

Called during PostLoad of an object to allow class specific PostLoad operations of an object instance.

◆ PurgeClass()

void UClass::PurgeClass ( bool  bRecompilingOnLoad)
virtual

Purges out the properties of this class in preparation for it to be regenerated

Parameters
bRecompilingOnLoad- true if we are recompiling on load

In editor, properties are not freed until DestroyPropertiesPendingDestruction is called.

Reimplemented in UAnimBlueprintGeneratedClass, UBlueprintGeneratedClass, and UWidgetBlueprintGeneratedClass.

◆ RemoveFunctionFromFunctionMap()

void UClass::RemoveFunctionFromFunctionMap ( UFunction Function)
inline

Remove a function from the function map

◆ Rename()

bool UClass::Rename ( const TCHAR NewName = nullptr,
UObject NewOuter = nullptr,
ERenameFlags  Flags = REN_None 
)
overridevirtual

Rename this object to a unique name, or change its outer.

Remarks
A unique name will be generated if NewName is null and if either is true: NewOuter is null or NewOuter equals the current outer.
Parameters
NewNameThe new name of the object, if null then NewOuter should be set
NewOuterNew Outer this object will be placed within, if null it will use the current outer
FlagsFlags to specify what happens during the rename

Reimplemented from UObject.

◆ Serialize()

void UClass::Serialize ( FArchive Ar)
overridevirtual

Handles reading, writing, and reference collecting using FArchive. This implementation handles all FProperty serialization, but can be overridden for native variables.

Reimplemented from UStruct.

Reimplemented in UAnimBlueprintGeneratedClass, UBlueprintGeneratedClass, and UWidgetBlueprintGeneratedClass.

◆ SerializeDefaultObject() [1/2]

virtual void UClass::SerializeDefaultObject ( UObject Object,
FArchive Ar 
)
inlinefinalvirtual

serializes the passed in object as this class's default object using the given archive

Parameters
Objectthe object to serialize as default
Arthe archive to serialize from

◆ SerializeDefaultObject() [2/2]

void UClass::SerializeDefaultObject ( UObject Object,
FStructuredArchive::FSlot  Slot 
)
virtual

serializes the passed in object as this class's default object using the given archive slot

Parameters
Objectthe object to serialize as default
Slotthe structured archive slot to serialize from

serializes the passed in object as this class's default object using the given archive

Parameters
Objectthe object to serialize as default
Arthe archive to serialize from

Reimplemented in UBlueprintGeneratedClass.

◆ SerializeSparseClassData()

void UClass::SerializeSparseClassData ( FStructuredArchive::FSlot  Slot)

serializes the associated sparse class data for the passed in object using the given archive slot. This should only be called if the class has an associated sparse data structure.

Parameters
Slotthe structured archive slot to serialize from

◆ SetCppTypeInfoStatic()

void UClass::SetCppTypeInfoStatic ( const FCppClassTypeInfoStatic InCppTypeInfoStatic)
inline

Sets C++ type information. Should not be NULL.

◆ SetDefaultObject()

void UClass::SetDefaultObject ( UObject InClassDefaultObject)

Get the immutable default object from the class

Parameters
bCreateIfNeededif true (default) then the CDO is created if it is null
Returns
the immutable CDO for this class Sets the default object of the class
Parameters
InClassDefaultObjectnew class default object or null

◆ SetSparseClassDataStruct()

void UClass::SetSparseClassDataStruct ( UScriptStruct InSparseClassDataStruct)

◆ SetSuperStruct()

void UClass::SetSuperStruct ( UStruct NewSuperStruct)
overridevirtual

Sets the super struct pointer and updates hash information as necessary. Note that this is not sufficient to actually reparent a struct, it simply sets a pointer.

Reimplemented from UStruct.

◆ SetupObjectInitializer()

virtual void UClass::SetupObjectInitializer ( FObjectInitializer ObjectInitializer) const
inlinevirtual

Allows class to provide data to the object initializer that can affect how native class subobjects are created.

Reimplemented in UBlueprintGeneratedClass.

◆ SetUpRuntimeReplicationData()

void UClass::SetUpRuntimeReplicationData ( )

Initializes the ClassReps and NetFields arrays used by replication. This happens lazily based on the CLASS_ReplicationDataIsSetUp flag, and will generally occur in Link or PostLoad. It's possible that replicated UFunctions will load after their owning class, so UFunction::PostLoad will clear the flag on its owning class to force lazy initialization next time the data is needed. Also happens after blueprint compiliation.

◆ ShouldUseDynamicSubobjectInstancing()

bool UClass::ShouldUseDynamicSubobjectInstancing ( ) const
inline

Returns true if the object instancing graph should analyze default data at runtime to determine which of its object properties need to be instanced at construction time, rather than exclusively relying on reflected property semantics.

◆ TagSubobjects()

void UClass::TagSubobjects ( EObjectFlags  NewFlags)
overridevirtual

Tags objects that are part of the same asset with the specified object flag, used for GC checking

Parameters
ObjectFlagsObject Flags to enable on the related objects

Reimplemented from UStruct.

◆ TryConvertShortTypeNameToPathName() [1/2]

template<typename T >
static FTopLevelAssetPath UClass::TryConvertShortTypeNameToPathName ( FStringView  InShortTypeName,
ELogVerbosity::Type  AmbiguousMessageVerbosity = ELogVerbosity::NoLogging,
const TCHAR AmbiguousClassMessage = nullptr 
)
inlinestatic

Tries to convert short class name to class path name. This will only work if the class exists in memory

Parameters
InShortClassNameShort class name. If this parameter is already a path name then it's going to be returned as FTopLevelAssetPath
AmbiguousMessageVerbosityVerbosity with which to log a message if class name is ambiguous
AmbiguousClassMessageAdditional message to log when class name is ambiguous (e.g. current operation)
Returns
Class path name if successful. Empty FTopLevelAssetPath otherwise.

◆ TryConvertShortTypeNameToPathName() [2/2]

FTopLevelAssetPath UClass::TryConvertShortTypeNameToPathName ( UClass TypeClass,
FStringView  InShortTypeName,
ELogVerbosity::Type  AmbiguousMessageVerbosity = ELogVerbosity::NoLogging,
const TCHAR AmbiguousClassMessage = nullptr 
)
static

Tries to convert short class name to class path name. This will only work if the class exists in memory This function is slow and should not be used in performance critical situations

Parameters
TypeClassExpected Class of the type that needs to be converted (UEnum / UStruct / UClass)
InShortClassNameShort class name. If this parameter is already a path name then it's going to be returned as FTopLevelAssetPath
AmbiguousMessageVerbosityVerbosity with which to log a message if class name is ambiguous
AmbiguousClassMessageAdditional message to log when class name is ambiguous (e.g. current operation)
Returns
Class path name if successful. Empty FTopLevelAssetPath otherwise.

◆ TryFindTypeSlow() [1/2]

template<typename T >
static T * UClass::TryFindTypeSlow ( FStringView  InShortNameOrPathName,
EFindFirstObjectOptions  InOptions = EFindFirstObjectOptions::None 
)
inlinestatic

Utility function that tries to find a type (class/struct/enum) given a path name or a short name however it will throw a warning (with a callstack) if it's the latter. Useful for tracking down and fixing remaining places that use short class names. This function is slow and should not be used in performance critical situations

Parameters
InShortNameOrPathNameClass name
Returns
Pointer to a type object if successful, false otherwise

◆ TryFindTypeSlow() [2/2]

UField * UClass::TryFindTypeSlow ( UClass TypeClass,
FStringView  InPathNameOrShortName,
EFindFirstObjectOptions  InOptions = EFindFirstObjectOptions::None 
)
static

Utility function that tries to find a type (class/struct/enum) given a path name or a short name however it will throw a warning (with a callstack) if it's the latter. Useful for tracking down and fixing remaining places that use short class names. This function is slow and should not be used in performance critical situations

Parameters
TypeClassClass of the expected type. Must be a subclass of UField
InShortNameOrPathNameClass name
Returns
Pointer to a type object if successful, nullptr otherwise

◆ TryFindTypeSlowSafe() [1/2]

template<typename T >
static T * UClass::TryFindTypeSlowSafe ( FStringView  InShortNameOrPathName,
EFindFirstObjectOptions  InOptions = EFindFirstObjectOptions::None 
)
inlinestatic

Utility function that tries to find a type (class/struct/enum) given a path name or a short name however it will throw a warning (with a callstack) if it's the latter. Useful for tracking down and fixing remaining places that use short class names. This function is slow and should not be used in performance critical situations This version of TryFindType will not assert when saving package or when collecting garbage

Parameters
InShortNameOrPathNameClass name
Returns
Pointer to a type object if successful, nullptr otherwise

◆ TryFindTypeSlowSafe() [2/2]

UField * UClass::TryFindTypeSlowSafe ( UClass TypeClass,
FStringView  InPathNameOrShortName,
EFindFirstObjectOptions  InOptions = EFindFirstObjectOptions::None 
)
static

Utility function that tries to find a type (class/struct/enum) given a path name or a short name however it will throw a warning (with a callstack) if it's the latter. Useful for tracking down and fixing remaining places that use short class names. This function is slow and should not be used in performance critical situations This version of TryFindType will not assert when saving package or when collecting garbage

Parameters
TypeClassClass of the expected type. Must be a subclass of UField
InShortNameOrPathNameClass name
Returns
Pointer to a type object if successful, nullptr otherwise

◆ TryFixShortClassNameExportPath()

bool UClass::TryFixShortClassNameExportPath ( FString &  InOutExportPathToFix,
ELogVerbosity::Type  AmbiguousMessageVerbosity = ELogVerbosity::NoLogging,
const TCHAR AmbiguousClassMessage = nullptr,
bool  bClearOnError = false 
)
static

Tries to fix an export path containing short class name. Will not modify the input InOutExportPathToFix if a fixup was not necessary. Optionally modifies it if a fixup is necessary but unsuccessful.

Parameters
InOutExportPathToFixExport path (Class'/Path/To.Object')
AmbiguousMessageVerbosityVerbosity with which to log a message if class name is ambiguous
AmbiguousClassMessageAdditional message to log when class name is ambiguous (e.g. current operation)
bClearOnErrorIf the fixup is necessary but unsuccessful, if bClearOnError, clear the value and return true, otherwise leave the value unchanged and return false.
Returns
True if the short path was successfully fixed. False if the provided export path did not contain short class name or the short path could not be fixed.

◆ UE_DEPRECATED() [1/2]

UClass::UE_DEPRECATED ( 5.  5,
"Replace with UE::Reflection::DoesSparseClassDataOverrideArchetype(Class, [](const FProperty*){return true;})"   
) const

Returns whether the sparse class data on this instance overrides that of its archetype (in type or value)

◆ UE_DEPRECATED() [2/2]

UClass::UE_DEPRECATED ( 5.  6,
"ClassDefaultObject will be made private in the next release. For general purpose access to the CDO consider using the global GetDefault<>() or GetMutableDefault<>() functions."   
)

The class default object; used for delta serialization and object initialization

Friends And Related Symbol Documentation

◆ FBlueprintCompilationManagerImpl

friend struct FBlueprintCompilationManagerImpl
friend

◆ FBlueprintCompileReinstancer

friend class FBlueprintCompileReinstancer
friend

◆ FBlueprintEditorUtils

friend class FBlueprintEditorUtils
friend

◆ FRestoreClassInfo

friend class FRestoreClassInfo
friend

Member Data Documentation

◆ [union]

union { ... } UClass

◆ [union]

union { ... } UClass

◆ [union]

union { ... } UClass

◆ bCooked

bool UClass::bCooked

Used to check if the class was cooked or not

◆ bLayoutChanging

bool UClass::bLayoutChanging

Used to check if the class layout is currently changing and therefore is not ready for a CDO to be created

◆ bNeedsDynamicSubobjectInstancing

bool UClass::bNeedsDynamicSubobjectInstancing = false
protected

TRUE if this class should not rely exclusively on instanced property semantics for subobject template instancing.

◆ ClassCastFlags

EClassCastFlags UClass::ClassCastFlags

Cast flags used to accelerate dynamic_cast<T*> on objects of this type for common T

◆ ClassConfigName

FName UClass::ClassConfigName = {}

Which Name.ini file to load Config variables out of

◆ ClassConstructor

ClassConstructorType UClass::ClassConstructor

◆ ClassFlags

EClassFlags UClass::ClassFlags

Class flags; See EClassFlags for more information

◆ ClassReps

TArray<FRepRecord> UClass::ClassReps

List of replication records

◆ ClassUnique

int32 UClass::ClassUnique
mutable

Class pseudo-unique counter; used to accelerate unique instance name generation

◆ ClassVTableHelperCtorCaller

ClassVTableHelperCtorCallerType UClass::ClassVTableHelperCtorCaller

◆ ClassWithin

TObjectPtr<UClass> UClass::ClassWithin

The required type for the outer of instances of this class

◆ CppClassStaticFunctions

FUObjectCppClassStaticFunctions UClass::CppClassStaticFunctions

◆ FirstOwnedClassRep

int32 UClass::FirstOwnedClassRep = 0

Index of the first ClassRep that belongs to this class. Anything before that was defined by / belongs to parent classes.

◆ Interfaces

TArray<FImplementedInterface> UClass::Interfaces = {}

The list of interfaces which this class implements, along with the pointer property that is located at the offset of the interface's vtable. If the interface class isn't native, the property will be null.

◆ NativeFunctionLookupTable

TArray<FNativeFunctionLookup> UClass::NativeFunctionLookupTable = {}

This class's native functions.

◆ NetFields

TArray<TObjectPtr<UField> > UClass::NetFields

List of network relevant fields (functions)

◆ ReferenceSchema

UE::GC::FSchemaOwner UClass::ReferenceSchema

GC schema, finalized in AssembleReferenceTokenStream

◆ SparseClassData

void* UClass::SparseClassData
protected

This is where we store the data that is only changed per class instead of per instance

◆ SparseClassDataStruct

TObjectPtr<UScriptStruct> UClass::SparseClassDataStruct
protected

The struct used to store sparse class data.


The documentation for this class was generated from the following files: