UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UObjectHash.h File Reference
#include "Concepts/SameAs.h"
#include "Containers/Array.h"
#include "Containers/ArrayView.h"
#include "Containers/Map.h"
#include "Containers/Set.h"
#include "Containers/UnrealString.h"
#include "CoreTypes.h"
#include "Stats/Stats.h"
#include "Templates/Function.h"
#include "UObject/FindObjectFlags.h"
#include "UObject/NameTypes.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UObjectArray.h"
#include "UObject/UnrealNames.h"

Go to the source code of this file.

Classes

class  FScopedUObjectHashTablesLock
 

Enumerations

enum class  EObjectMemoryOverheadOptions { None , ShowIndividualStats = 1 << 0 , IncludeReflectionData = 1 << 1 }
 

Functions

 DECLARE_STATS_GROUP_VERBOSE (TEXT("UObject Hash"), STATGROUP_UObjectHash, STATCAT_Advanced)
 
 DECLARE_DWORD_COUNTER_STAT_EXTERN (TEXT("NumObjects"), STAT_Hash_NumObjects, STATGROUP_UObjectHash, COREUOBJECT_API)
 
COREUOBJECT_API UObjectStaticFindObjectFastInternal (const UClass *Class, const UObject *InOuter, FName InName, EFindObjectFlags Flags=EFindObjectFlags::None, EObjectFlags ExclusiveFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObjectStaticFindObjectFastInternal (const UClass *Class, const UObject *InOuter, FName InName, ExactClassType bExactClass, EObjectFlags ExclusiveFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API bool StaticFindAllObjectsFastInternal (TArray< UObject * > &OutFoundObjects, const UClass *ObjectClass, FName ObjectName, EFindObjectFlags Flags=EFindObjectFlags::None, EObjectFlags ExcludeFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool StaticFindAllObjectsFastInternal (TArray< UObject * > &OutFoundObjects, const UClass *ObjectClass, FName ObjectName, ExactClassType bExactClass, EObjectFlags ExcludeFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API UObjectStaticFindFirstObjectFastInternal (const UClass *ObjectClass, FName ObjectName, EFindObjectFlags Flags=EFindObjectFlags::None, EObjectFlags ExcludeFlag=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObjectStaticFindFirstObjectFastInternal (const UClass *ObjectClass, FName ObjectName, ExactClassType bExactClass, EObjectFlags ExcludeFlag=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
UObjectStaticFindObjectFastExplicit (const UClass *ObjectClass, FName ObjectName, const FString &ObjectPathName, EFindObjectFlags Flags=EFindObjectFlags::None, EObjectFlags ExcludeFlags=RF_NoFlags)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObjectStaticFindObjectFastExplicit (const UClass *ObjectClass, FName ObjectName, const FString &ObjectPathName, ExactClassType bExactClass, EObjectFlags ExcludeFlags=RF_NoFlags)
 
COREUOBJECT_API UObjectStaticFindObjectFastInternal (FRemoteObjectId RemoteId, EObjectFlags InExclusiveFlags=RF_NoFlags, EInternalObjectFlags InExlusiveInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API void GetObjectsWithOuter (const class UObjectBase *Outer, TArray< UObject * > &Results, bool bIncludeNestedObjects=true, EObjectFlags ExclusionFlags=RF_NoFlags, EInternalObjectFlags ExclusionInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API void ForEachObjectWithOuterBreakable (const class UObjectBase *Outer, TFunctionRef< bool(UObject *)> Operation, bool bIncludeNestedObjects=true, EObjectFlags ExclusionFlags=RF_NoFlags, EInternalObjectFlags ExclusionInternalFlags=EInternalObjectFlags::None)
 
void ForEachObjectWithOuter (const class UObjectBase *Outer, TFunctionRef< void(UObject *)> Operation, bool bIncludeNestedObjects=true, EObjectFlags ExclusionFlags=RF_NoFlags, EInternalObjectFlags ExclusionInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API class UObjectBaseFindObjectWithOuter (const class UObjectBase *Outer, const class UClass *ClassToLookFor=nullptr, FName NameToLookFor=NAME_None)
 
COREUOBJECT_API void GetObjectsWithPackage (const class UPackage *Outer, TArray< UObject * > &Results, bool bIncludeNestedObjects=true, EObjectFlags ExclusionFlags=RF_NoFlags, EInternalObjectFlags ExclusionInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API void ForEachObjectWithPackage (const class UPackage *Outer, TFunctionRef< bool(UObject *)> Operation, bool bIncludeNestedObjects=true, EObjectFlags ExclusionFlags=RF_NoFlags, EInternalObjectFlags ExclusionInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API void GetObjectsOfClass (const UClass *ClassToLookFor, TArray< UObject * > &Results, bool bIncludeDerivedClasses=true, EObjectFlags ExcludeFlags=RF_ClassDefaultObject, EInternalObjectFlags ExclusionInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API void ForEachObjectOfClass (const UClass *ClassToLookFor, TFunctionRef< void(UObject *)> Operation, bool bIncludeDerivedClasses=true, EObjectFlags ExcludeFlags=RF_ClassDefaultObject, EInternalObjectFlags ExclusionInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API void ForEachObjectOfClasses (TArrayView< const UClass *const > ClassesToLookFor, TFunctionRef< void(UObject *)> Operation, EObjectFlags ExcludeFlags=RF_ClassDefaultObject, EInternalObjectFlags ExclusionInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API void GetDerivedClasses (const UClass *ClassToLookFor, TArray< UClass * > &Results, bool bRecursive=true)
 
COREUOBJECT_API TMap< UClass *, TSet< UClass * > > GetAllDerivedClasses ()
 
COREUOBJECT_API bool ClassHasInstancesAsyncLoading (const UClass *ClassToLookFor)
 
void HashObject (class UObjectBase *Object)
 
void UnhashObject (class UObjectBase *Object)
 
void HashObjectExternalPackage (class UObjectBase *Object, class UPackage *Package)
 
void UnhashObjectExternalPackage (class UObjectBase *Object)
 
UPackageGetObjectExternalPackageThreadSafe (const class UObjectBase *Object)
 
UPackageGetObjectExternalPackageInternal (const class UObjectBase *Object)
 
COREUOBJECT_API void ShrinkUObjectHashTables ()
 
COREUOBJECT_API uint64 GetRegisteredClassesVersionNumber ()
 
COREUOBJECT_API uint64 GetRegisteredNativeClassesVersionNumber ()
 
COREUOBJECT_API void LogHashStatistics (FOutputDevice &Ar, const bool bShowHashBucketCollisionInfo)
 
COREUOBJECT_API void LogHashOuterStatistics (FOutputDevice &Ar, const bool bShowHashBucketCollisionInfo)
 
COREUOBJECT_API void LogHashMemoryOverheadStatistics (FOutputDevice &Ar, const EObjectMemoryOverheadOptions InOptions)
 
void LogHashMemoryOverheadStatistics (FOutputDevice &Ar, const bool bShowIndividualStats)
 
void LockUObjectHashTables ()
 
void UnlockUObjectHashTables ()
 

Enumeration Type Documentation

◆ EObjectMemoryOverheadOptions

Enumerator
None 
ShowIndividualStats 
IncludeReflectionData 

Function Documentation

◆ ClassHasInstancesAsyncLoading()

COREUOBJECT_API bool ClassHasInstancesAsyncLoading ( const UClass ClassToLookFor)

Returns true if any instances of the class in question are currently being async loaded.

Parameters
ClassToLookForThe class in question
Returns
True if there are any instances of the class being async loaded - includes instances based on derived classes. Otherwise, false

◆ DECLARE_DWORD_COUNTER_STAT_EXTERN()

DECLARE_DWORD_COUNTER_STAT_EXTERN ( TEXT("NumObjects")  ,
STAT_Hash_NumObjects  ,
STATGROUP_UObjectHash  ,
COREUOBJECT_API   
)

◆ DECLARE_STATS_GROUP_VERBOSE()

DECLARE_STATS_GROUP_VERBOSE ( TEXT("UObject Hash" ,
STATGROUP_UObjectHash  ,
STATCAT_Advanced   
)

◆ FindObjectWithOuter()

COREUOBJECT_API class UObjectBase * FindObjectWithOuter ( const class UObjectBase Outer,
const class UClass ClassToLookFor = nullptr,
FName  NameToLookFor = NAME_None 
)

Find an objects with a given name and or class within an outer

Parameters
OuterOuter to search for
ClassToLookForif NULL, ignore this parameter, otherwise require the returned object have this class
NameToLookForif NAME_None, ignore this parameter, otherwise require the returned object have this name

◆ ForEachObjectOfClass()

COREUOBJECT_API void ForEachObjectOfClass ( const UClass ClassToLookFor,
TFunctionRef< void(UObject *)>  Operation,
bool  bIncludeDerivedClasses = true,
EObjectFlags  ExcludeFlags = RF_ClassDefaultObject,
EInternalObjectFlags  ExclusionInternalFlags = EInternalObjectFlags::None 
)

Performs an operation on all objects of the provided class Note that the operation must not modify UObject hash maps so it can not create, rename or destroy UObjects.

Parameters
OuterUObject class to loop over instances of
OperationFunction to be called for each object
bIncludeDerivedClassesIf true, the results will include objects of child classes as well.
AdditionalExcludeFlagsObjects with any of these flags will be excluded from the results.

◆ ForEachObjectOfClasses()

COREUOBJECT_API void ForEachObjectOfClasses ( TArrayView< const UClass *const >  ClassesToLookFor,
TFunctionRef< void(UObject *)>  Operation,
EObjectFlags  ExcludeFlags = RF_ClassDefaultObject,
EInternalObjectFlags  ExclusionInternalFlags = EInternalObjectFlags::None 
)

Performs an operation on all objects of the provided classes Note that the operation must not modify UObject hash maps so it can not create, rename or destroy UObjects.

Parameters
ClassesUObject Classes to loop over instances of
OperationFunction to be called for each object
bIncludeDerivedClassesIf true, the results will include objects of child classes as well.
AdditionalExcludeFlagsObjects with any of these flags will be excluded from the results.

◆ ForEachObjectWithOuter()

void ForEachObjectWithOuter ( const class UObjectBase Outer,
TFunctionRef< void(UObject *)>  Operation,
bool  bIncludeNestedObjects = true,
EObjectFlags  ExclusionFlags = RF_NoFlags,
EInternalObjectFlags  ExclusionInternalFlags = EInternalObjectFlags::None 
)
inline

Performs an operation on all objects with a given outer Note that the operation must not modify UObject hash maps so it can not create, rename or destroy UObjects.

Parameters
OuterOuter to search for
OperationFunction to be called for each object
bIncludeNestedObjectsIf true, then things whose outers directly or indirectly have Outer as an outer are included, these are the nested objects.
ExclusionFlagsSpecifies flags to use as a filter for which objects to return
ExclusiveInternalFlagsSpecifies internal flags to use as a filter for which objects to return

◆ ForEachObjectWithOuterBreakable()

COREUOBJECT_API void ForEachObjectWithOuterBreakable ( const class UObjectBase Outer,
TFunctionRef< bool(UObject *)>  Operation,
bool  bIncludeNestedObjects = true,
EObjectFlags  ExclusionFlags = RF_NoFlags,
EInternalObjectFlags  ExclusionInternalFlags = EInternalObjectFlags::None 
)

Performs an operation on objects with a given outer, with the possibility to break iteration Note that the operation must not modify the UObject hash maps so it can not create, rename or destroy UObjects.

Parameters
OuterOuter to search for
OperationFunction to be called for each object, returning if we want to continue iteration or not
bIncludeNestedObjectsIf true, then things whose outers directly or indirectly have Outer as an outer are included, these are the nested objects.
ExclusionFlagsSpecifies flags to use as a filter for which objects to return
ExclusiveInternalFlagsSpecifies internal flags to use as a filter for which objects to return

◆ ForEachObjectWithPackage()

COREUOBJECT_API void ForEachObjectWithPackage ( const class UPackage Outer,
TFunctionRef< bool(UObject *)>  Operation,
bool  bIncludeNestedObjects = true,
EObjectFlags  ExclusionFlags = RF_NoFlags,
EInternalObjectFlags  ExclusionInternalFlags = EInternalObjectFlags::None 
)

Performs an operation on all objects found within a given package Note that the operation must not modify UObject hash maps so it can not create, rename or destroy UObjects.

Parameters
PackagePackage to iterate into
OperationFunction to be called for each object, return false to break out of the iteration
bIncludeNestedObjectsIf true, then things whose outers directly or indirectly have Outer as an outer are included, these are the nested objects.
ExclusionFlagsSpecifies flags to use as a filter for which objects to return
ExclusiveInternalFlagsSpecifies internal flags to use as a filter for which objects to return

◆ GetAllDerivedClasses()

COREUOBJECT_API TMap< UClass *, TSet< UClass * > > GetAllDerivedClasses ( )

Get all base classes and their direct subclasses

◆ GetDerivedClasses()

COREUOBJECT_API void GetDerivedClasses ( const UClass ClassToLookFor,
TArray< UClass * > &  Results,
bool  bRecursive = true 
)

Returns an array of classes that were derived from the specified class.

Parameters
ClassToLookForThe parent class of the classes to return.
ResultsAn output list of child classes of the specified parent class.
bRecursiveIf true, the results will include children of the children classes, recursively. Otherwise, only direct decedents will be included.

◆ GetObjectExternalPackageInternal()

UPackage * GetObjectExternalPackageInternal ( const class UObjectBase Object)

Return the assigned external package of an object, if any

Parameters
ObjectObject to get the external package of
Returns
the assigned external package if any
Note
DO NOT USE, only for internal GC reference collecting

◆ GetObjectExternalPackageThreadSafe()

UPackage * GetObjectExternalPackageThreadSafe ( const class UObjectBase Object)

Return the assigned external package of an object, if any

Parameters
ObjectObject to get the external package of
Returns
the assigned external package if any

◆ GetObjectsOfClass()

COREUOBJECT_API void GetObjectsOfClass ( const UClass ClassToLookFor,
TArray< UObject * > &  Results,
bool  bIncludeDerivedClasses = true,
EObjectFlags  ExcludeFlags = RF_ClassDefaultObject,
EInternalObjectFlags  ExclusionInternalFlags = EInternalObjectFlags::None 
)

Returns an array of objects of a specific class. Optionally, results can include objects of derived classes as well.

Parameters
ClassToLookForClass of the objects to return.
ResultsAn output list of objects of the specified class.
bIncludeDerivedClassesIf true, the results will include objects of child classes as well.
AdditionalExcludeFlagsObjects with any of these flags will be excluded from the results.
ExclusiveInternalFlagsSpecifies internal flags to use as a filter for which objects to return

◆ GetObjectsWithOuter()

COREUOBJECT_API void GetObjectsWithOuter ( const class UObjectBase Outer,
TArray< UObject * > &  Results,
bool  bIncludeNestedObjects = true,
EObjectFlags  ExclusionFlags = RF_NoFlags,
EInternalObjectFlags  ExclusionInternalFlags = EInternalObjectFlags::None 
)

Return all objects with a given outer

Parameters
OuterOuter to search for
ResultsReturned results
bIncludeNestedObjectsIf true, then things whose outers directly or indirectly have Outer as an outer are included, these are the nested objects.
ExclusionFlagsSpecifies flags to use as a filter for which objects to return
ExclusiveInternalFlagsSpecifies internal flags to use as a filter for which objects to return

◆ GetObjectsWithPackage()

COREUOBJECT_API void GetObjectsWithPackage ( const class UPackage Outer,
TArray< UObject * > &  Results,
bool  bIncludeNestedObjects = true,
EObjectFlags  ExclusionFlags = RF_NoFlags,
EInternalObjectFlags  ExclusionInternalFlags = EInternalObjectFlags::None 
)

Returns an array of all objects found within a given package

Parameters
PackagePackage to search into
ResultsArray to put the results
bIncludeNestedObjectsIf true, then things whose outers directly or indirectly have Outer as an outer are included, these are the nested objects.
ExclusionFlagsSpecifies flags to use as a filter for which objects to return
ExclusiveInternalFlagsSpecifies internal flags to use as a filter for which objects to return

◆ GetRegisteredClassesVersionNumber()

COREUOBJECT_API uint64 GetRegisteredClassesVersionNumber ( )

Get a version number representing the current state of registered classes.

Can be stored and then compared to invalidate external caching of classes hierarchy whenever it changes.

◆ GetRegisteredNativeClassesVersionNumber()

COREUOBJECT_API uint64 GetRegisteredNativeClassesVersionNumber ( )

Get a version number representing the current state of registered native classes.

Can be stored and then compared to invalidate external caching of native classes hierarchy whenever it changes.

◆ HashObject()

void HashObject ( class UObjectBase Object)

Add an object to the name hash tables

Parameters
ObjectObject to add to the hash tables

◆ HashObjectExternalPackage()

void HashObjectExternalPackage ( class UObjectBase Object,
class UPackage Package 
)

Assign an external package directly to an object in the hash tables

Parameters
ObjectObject to assign a package to
PackagePackage to assign, null will call UnhashObjectExternalPackage

◆ LockUObjectHashTables()

void LockUObjectHashTables ( )

Locks UObject hash tables so that other threads can't hash or find new UObjects

Prevents any other threads from finding/adding UObjects (e.g. while GC is running)

◆ LogHashMemoryOverheadStatistics() [1/2]

void LogHashMemoryOverheadStatistics ( FOutputDevice Ar,
const bool  bShowIndividualStats 
)
inline

Logs out information about the total object hash memory usage for debug purposes

Parameters
Arthe archive to write the log data to
bShowIndividualStatswhether to log each hash/map memory usage separately

◆ LogHashMemoryOverheadStatistics() [2/2]

COREUOBJECT_API void LogHashMemoryOverheadStatistics ( FOutputDevice Ar,
const EObjectMemoryOverheadOptions  InOptions 
)

Logs out information about the total object hash memory usage for debug purposes

Parameters
Arthe archive to write the log data to
InOptionsLogging options

◆ LogHashOuterStatistics()

COREUOBJECT_API void LogHashOuterStatistics ( FOutputDevice Ar,
const bool  bShowHashBucketCollisionInfo 
)

Logs out information about the outer object hash for debug purposes

Parameters
Arthe archive to write the log data to
bShowHashBucketCollisionInfowhether to log each bucket's collision count

◆ LogHashStatistics()

COREUOBJECT_API void LogHashStatistics ( FOutputDevice Ar,
const bool  bShowHashBucketCollisionInfo 
)

Logs out information about the object hash for debug purposes

Parameters
Arthe archive to write the log data to
bShowHashBucketCollisionInfowhether to log each bucket's collision count

◆ ShrinkUObjectHashTables()

COREUOBJECT_API void ShrinkUObjectHashTables ( )

Shrink the UObject hash tables

◆ StaticFindAllObjectsFastInternal() [1/2]

COREUOBJECT_API bool StaticFindAllObjectsFastInternal ( TArray< UObject * > &  OutFoundObjects,
const UClass ObjectClass,
FName  ObjectName,
EFindObjectFlags  Flags = EFindObjectFlags::None,
EObjectFlags  ExcludeFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

Private internal version of StaticFindAllObjectsFast that allows using 0 exclusion flags.

Parameters
OutFoundObjectsArray of objects matching the specified search parameters
ObjectClassThe to be found object's class
ObjectNameThe to be found object's name
bExactClassWhether to require an exact match with the passed in class
ExcludeFlagsIgnores objects that contain any of the specified exclusive flags
ExclusiveInternalFlagsIgnores objects that contain any of the specified internal exclusive flags
Returns
Returns true if any objects were found, false otherwise

If a class was specified, check that the object is of the correct class

Include (or not) pending kill objects

Ensure that the partial path provided matches the object found

◆ StaticFindAllObjectsFastInternal() [2/2]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool StaticFindAllObjectsFastInternal ( TArray< UObject * > &  OutFoundObjects,
const UClass ObjectClass,
FName  ObjectName,
ExactClassType  bExactClass,
EObjectFlags  ExcludeFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

◆ StaticFindFirstObjectFastInternal() [1/2]

COREUOBJECT_API UObject * StaticFindFirstObjectFastInternal ( const UClass ObjectClass,
FName  ObjectName,
EFindObjectFlags  Flags = EFindObjectFlags::None,
EObjectFlags  ExcludeFlag = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

Private internal version of StaticFindFirstObject that allows using 0 exclusion flags.

Parameters
ObjectClassThe to be found object's class
ObjectNameThe to be found object's name
bExactClassWhether to require an exact match with the passed in class
ExcludeFlagIgnores objects that contain any of the specified exclusive flags
ExclusiveInternalFlagsIgnores objects that contain any of the specified internal exclusive flags
Returns
Returns first object with the specified name and class, null if not found

If a class was specified, check that the object is of the correct class

Include (or not) pending kill objects

Ensure that the partial path provided matches the object found

◆ StaticFindFirstObjectFastInternal() [2/2]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObject * StaticFindFirstObjectFastInternal ( const UClass ObjectClass,
FName  ObjectName,
ExactClassType  bExactClass,
EObjectFlags  ExcludeFlag = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

◆ StaticFindObjectFastExplicit() [1/2]

UObject * StaticFindObjectFastExplicit ( const UClass ObjectClass,
FName  ObjectName,
const FString &  ObjectPathName,
EFindObjectFlags  Flags,
EObjectFlags  ExcludeFlags 
)

Variation of StaticFindObjectFast that uses explicit path.

Parameters
ObjectClassThe to be found object's class
ObjectNameThe to be found object's name
ObjectPathNameFull path name for the object to search for
ExactClassWhether to require an exact match with the passed in class
ExclusiveFlagsIgnores objects that contain any of the specified exclusive flags
Returns
Returns a pointer to the found object or NULL if none could be found

Variation of StaticFindObjectFast that uses explicit path.

Parameters
ObjectClassThe to be found object's class
ObjectNameThe to be found object's class
ObjectPathNameFull path name for the object to search for
ExactClassWhether to require an exact match with the passed in class
ExclusiveFlagsIgnores objects that contain any of the specified exclusive flags
Returns
Returns a pointer to the found object or nullptr if none could be found

◆ StaticFindObjectFastExplicit() [2/2]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObject * StaticFindObjectFastExplicit ( const UClass ObjectClass,
FName  ObjectName,
const FString &  ObjectPathName,
ExactClassType  bExactClass,
EObjectFlags  ExcludeFlags = RF_NoFlags 
)

◆ StaticFindObjectFastInternal() [1/3]

COREUOBJECT_API UObject * StaticFindObjectFastInternal ( const UClass Class,
const UObject InOuter,
FName  InName,
EFindObjectFlags  Flags = EFindObjectFlags::None,
EObjectFlags  ExclusiveFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

Private internal version of StaticFindObjectFast that allows using 0 exclusion flags.

Parameters
ClassThe to be found object's class
InOuterThe to be found object's outer
InNameThe to be found object's class
ExactClassWhether to require an exact match with the passed in class
ExclusiveFlagsIgnores objects that contain any of the specified exclusive flags
ExclusiveInternalFlagsIgnores objects that contain any of the specified internal exclusive flags
Returns
Returns a pointer to the found object or NULL if none could be found

◆ StaticFindObjectFastInternal() [2/3]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObject * StaticFindObjectFastInternal ( const UClass Class,
const UObject InOuter,
FName  InName,
ExactClassType  bExactClass,
EObjectFlags  ExclusiveFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

◆ StaticFindObjectFastInternal() [3/3]

COREUOBJECT_API UObject * StaticFindObjectFastInternal ( FRemoteObjectId  RemoteId,
EObjectFlags  InExclusiveFlags = RF_NoFlags,
EInternalObjectFlags  InExlusiveInternalFlags = EInternalObjectFlags::None 
)

Variation of StaticFindObjectFastInternal that uses remote id.

Parameters
RemoteIdThe to be found object's remote id
InExclusiveFlagsIgnores objects that contain any of the specified exclusive flags
InExlusiveInternalFlagsIgnores objects that contain any of the specified internal exclusive flags
Returns
Returns a pointer to the found object or NULL if none could be found

◆ UnhashObject()

void UnhashObject ( UObjectBase Object)

Remove an object to the name hash tables

Parameters
ObjectObject to remove from the hash tables

◆ UnhashObjectExternalPackage()

void UnhashObjectExternalPackage ( class UObjectBase Object)

Assign an external package directly to an object in the hash tables

Parameters
ObjectObject to unassign a package from

◆ UnlockUObjectHashTables()

void UnlockUObjectHashTables ( )

Unlocks UObject hash tables

Releases UObject hash tables lock (e.g. after GC has finished running)