![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include "UObject/UObjectGlobals.h"#include "Containers/BitArray.h"#include "HAL/PlatformFileManager.h"#include "HAL/FileManager.h"#include "Logging/StructuredLog.h"#include "Misc/AsciiSet.h"#include "Misc/EnumRange.h"#include "Misc/PackageAccessTrackingOps.h"#include "Misc/Paths.h"#include "Misc/ITransaction.h"#include "Serialization/ArchiveProxy.h"#include "Misc/CommandLine.h"#include "Misc/ConfigCacheIni.h"#include "HAL/IConsoleManager.h"#include "Misc/SlowTask.h"#include "Misc/FeedbackContext.h"#include "Misc/ScopedSlowTask.h"#include "Misc/App.h"#include "UObject/ScriptInterface.h"#include "UObject/UObjectAllocator.h"#include "UObject/UObjectBase.h"#include "UObject/UObjectBaseUtility.h"#include "UObject/UObjectHash.h"#include "UObject/UObjectHashPrivate.h"#include "UObject/Object.h"#include "UObject/ObjectVisibility.h"#include "UObject/GarbageCollection.h"#include "UObject/GCScopeLock.h"#include "UObject/Class.h"#include "UObject/CoreRedirects.h"#include "UObject/FastReferenceCollector.h"#include "UObject/ObjectInstancingGraph.h"#include "UObject/OverridableManager.h"#include "UObject/PropertyStateTracking.h"#include "UObject/UObjectIterator.h"#include "UObject/Package.h"#include "Templates/Casts.h"#include "UObject/PropertyPortFlags.h"#include "Serialization/SerializedPropertyScope.h"#include "UObject/UnrealType.h"#include "UObject/ObjectRedirector.h"#include "UObject/PackageResourceManager.h"#include "Serialization/CompactBinaryWriter.h"#include "Serialization/DuplicatedObject.h"#include "Serialization/DuplicatedDataReader.h"#include "Serialization/DuplicatedDataWriter.h"#include "Serialization/LoadTimeTracePrivate.h"#include "Misc/PackageName.h"#include "Misc/PathViews.h"#include "UObject/LinkerLoad.h"#include "Blueprint/BlueprintSupport.h"#include "Misc/SecureHash.h"#include "Misc/TrackedActivity.h"#include "UObject/ConstructorHelpers.h"#include "UObject/UObjectThreadContext.h"#include "UObject/LinkerManager.h"#include "Misc/ExclusiveLoadPackageTimeTracker.h"#include "ProfilingDebugging/CookStats.h"#include "Modules/ModuleManager.h"#include "UObject/EnumProperty.h"#include "UObject/TextProperty.h"#include "UObject/StrProperty.h"#include "UObject/AnsiStrProperty.h"#include "UObject/Utf8StrProperty.h"#include "UObject/FieldPathProperty.h"#include "UObject/MetaData.h"#include "UObject/UObjectConstructInternal.h"#include "HAL/LowLevelMemTracker.h"#include "HAL/LowLevelMemStats.h"#include "Misc/CoreDelegates.h"#include "ProfilingDebugging/CsvProfiler.h"#include "IO/IoDispatcher.h"#include "ProfilingDebugging/LoadTimeTracker.h"#include "ProfilingDebugging/AssetMetadataTrace.h"#include "Misc/PackageAccessTracking.h"#include "UObject/PropertyWithSetterAndGetter.h"#include "Templates/GuardValueAccessors.h"#include "UObject/UObjectGlobalsInternal.h"#include "Serialization/AsyncPackageLoader.h"#include "AutoRTFM.h"#include "UObject/PropertyOptional.h"#include "UObject/ObjectHandlePrivate.h"#include "UObject/RemoteObjectPrivate.h"#include "UObject/RemoteObjectSerialization.h"#include "UObject/VerseClassProperty.h"#include "UObject/VerseStringProperty.h"#include "VerseVM/VVMVerseClass.h"#include "UObject/VerseValueProperty.h"Classes | |
| struct | FPerClassNumberSuffixAnnotation |
| struct | FCompareUObjectByLinkerAndOffset |
| struct | FObjectDuplicationHelperMethods |
| class | FGCReconstructionGuard |
| class | FPropertyTrackingReferenceCollectorArchive |
| class | FCollectorTagUsedNonRecursive |
Namespaces | |
| namespace | UECodeGen_Private |
Macros | |
| #define | PROPERTY_INIT_STATE_TRACKING_ENABLE_DEFAULT 1 |
| #define | TRY_REUSE_NAMES UE_FNAME_OUTLINE_NUMBER |
Enumerations | |
| enum class | EPropertyCollectFlags : uint32 { None = 0 , SkipTransient = 1 << 0 , NeedsReferencer = 1 << 1 , CallStructARO = 1 << 2 , OnlyObjectProperty = 1 << 3 } |
Variables | |
| int32 | GAllowUnversionedContentInEditor = 0 |
| bool | GAllowParseObjectLoading = true |
| const FName | NAME_UniqueObjectNameForCooking (TEXT("UniqueObjectNameForCooking")) |
| COREUOBJECT_API bool | GOutputCookingWarnings = false |
| #define PROPERTY_INIT_STATE_TRACKING_ENABLE_DEFAULT 1 |
| #define TRY_REUSE_NAMES UE_FNAME_OUTLINE_NUMBER |
|
strong |
| void BeginLoad | ( | FUObjectSerializeContext * | LoadContext, |
| const TCHAR * | DebugContext = nullptr |
||
| ) |
UObjects are being loaded between these calls
Notify delegate listeners of all the packages that loaded; called only once per explicit call to LoadPackage.
| FORCEINLINE_DEBUGGABLE void CallCollectStructReferences | ( | FReferenceCollector & | Collector, |
| const StructType * | Struct, | ||
| void * | Instance, | ||
| const UObject * | Referencer | ||
| ) |
| void CollectArrayReferences | ( | FReferenceCollector & | Collector, |
| FArrayProperty & | Property, | ||
| void * | Instance, | ||
| const UObject * | Referencer | ||
| ) |
| FORCEINLINE_DEBUGGABLE void CollectObjectReference | ( | FReferenceCollector & | Collector, |
| FProperty & | Property, | ||
| void * | Value, | ||
| const UObject * | Referencer | ||
| ) |
| void CollectOptionalReference | ( | FReferenceCollector & | Collector, |
| FOptionalProperty & | Property, | ||
| void * | Instance, | ||
| const UObject * | Referencer | ||
| ) |
| void CollectPropertyReferences | ( | FReferenceCollector & | Collector, |
| FProperty & | Property, | ||
| void * | Instance, | ||
| const UObject * | Referencer | ||
| ) |
| void CollectSetReferences | ( | FReferenceCollector & | Collector, |
| FSetProperty & | Property, | ||
| void * | Instance, | ||
| const UObject * | Referencer | ||
| ) |
| FORCEINLINE_DEBUGGABLE bool CollectStackReference | ( | FReferenceCollector & | Collector, |
| FProperty & | Property, | ||
| UObject *& | Reference, | ||
| const UObject * | Referencer | ||
| ) |
| void ConstructorHelpers_StripObjectClass2 | ( | FStringBuilderBase & | PathName, |
| bool | bAssertOnBadPath = false |
||
| ) |
Find an existing package by name or create it if it doesn't exist
| DECLARE_CYCLE_STAT | ( | TEXT("InstanceSubobjects") | , |
| STAT_InstanceSubobjects | , | ||
| STATGROUP_Object | |||
| ) |
| DECLARE_CYCLE_STAT | ( | TEXT("PostInitProperties") | , |
| STAT_PostInitProperties | , | ||
| STATGROUP_Object | |||
| ) |
| DECLARE_CYCLE_STAT | ( | TEXT("PostReinitProperties") | , |
| STAT_PostReinitProperties | , | ||
| STATGROUP_Object | |||
| ) |
| DEFINE_LOG_CATEGORY | ( | LogUObjectGlobals | ) |
| DEFINE_LOG_CATEGORY_STATIC | ( | LogUniqueObjectName | , |
| Error | , | ||
| Error | |||
| ) |
| DEFINE_STAT | ( | STAT_AllocateObject | ) |
| DEFINE_STAT | ( | STAT_ConstructObject | ) |
| DEFINE_STAT | ( | STAT_DestroyObject | ) |
| DEFINE_STAT | ( | STAT_FindObject | ) |
| DEFINE_STAT | ( | STAT_FindObjectFast | ) |
| DEFINE_STAT | ( | STAT_InitProperties | ) |
| DEFINE_STAT | ( | STAT_LoadConfig | ) |
| DEFINE_STAT | ( | STAT_LoadObject | ) |
| DEFINE_STAT | ( | STAT_NameTableAnsiEntries | ) |
| DEFINE_STAT | ( | STAT_NameTableEntries | ) |
| DEFINE_STAT | ( | STAT_NameTableMemorySize | ) |
| DEFINE_STAT | ( | STAT_NameTableWideEntries | ) |
| DEFINE_STAT | ( | STAT_PostConstructInitializeProperties | ) |
| UObject * DuplicateObject_Internal | ( | UClass * | Class, |
| const UObject * | SourceObject, | ||
| UObject * | Outer, | ||
| const FName | NAME_None | ||
| ) |
Convenience function for duplicating an object
| Class | the class of the object being copied |
| SourceObject | the object being copied |
| Outer | the outer to use for the object |
| Name | the optional name of the object |
| void EndLoad | ( | FUObjectSerializeContext * | LoadContext | ) |
| void EndLoad | ( | FUObjectSerializeContext * | LoadContext, |
| TArray< UPackage * > * | OutLoadedPackages | ||
| ) |
| ENUM_CLASS_FLAGS | ( | EPropertyCollectFlags | ) |
| COREUOBJECT_API UFunction * FindDelegateSignature | ( | FName | DelegateSignatureName | ) |
Looks for delegate signature with given name.
Find an existing package by name
| InOuter | The Outer object to search inside |
| PackageName | The name of the package to find |
| COREUOBJECT_API bool GetAllowNativeComponentClassOverrides | ( | ) |
Utility accessor for whether we are running with component class overrides enabled
|
constexpr |
| FORCEINLINE EPropertyCollectFlags GetCollectorPropertyFlags | ( | FReferenceCollector & | Collector | ) |
| UScriptStruct * GetFallbackStruct | ( | ) |
A struct used as stub for deleted ones.
| const FString * GetIniFilenameFromObjectsReference | ( | const FString & | ObjectsReferenceString | ) |
Gets INI file name from object's reference if it contains one.
|
constexpr |
| void GlobalSetProperty | ( | const TCHAR * | Value, |
| UClass * | Class, | ||
| FProperty * | Property, | ||
| bool | bNotifyObjectOfChange | ||
| ) |
Internal function used to set a specific property value from debug/console code
Checks if the given FName is marked as a Universally Unique Object Name. Note: This is an early out check. This function may return true for FNames that are not Universally Unique Object Names.
| Name | The name to check. |
| FObjectDuplicationParameters InitStaticDuplicateObjectParams | ( | UObject const * | SourceObject, |
| UObject * | DestOuter, | ||
| const FName | DestName = NAME_None, |
||
| EObjectFlags | FlagMask = RF_AllFlags, |
||
| UClass * | DestClass = nullptr, |
||
| EDuplicateMode::Type | DuplicateMode = EDuplicateMode::Normal, |
||
| EInternalObjectFlags | InternalFlagsMask = EInternalObjectFlags_AllFlags |
||
| ) |
Returns FObjectDuplicationParameters initialized based of StaticDuplicateObject parameters
| bool IsLoading | ( | ) |
Returns whether we are currently loading a package (sync or async)
| bool IsReferenced | ( | UObject *& | Res, |
| EObjectFlags | KeepFlags, | ||
| EInternalObjectFlags | InternalKeepFlags, | ||
| bool | bCheckSubObjects = false, |
||
| FReferencerInformationList * | FoundReferences = nullptr |
||
| ) |
Returns whether an object is referenced, not counting references from itself
| Res | Object to check |
| KeepFlags | Objects with these flags will be considered as being referenced |
| InternalKeepFlags | Objects with these internal flags will be considered as being referenced |
| bCheckSubObjects | Treat subobjects as if they are the same as passed in object |
| FoundReferences | If non-nullptr fill in with list of objects that hold references |
| FString LexToString | ( | EObjectFlags | Flags | ) |
| LLM_DEFINE_TAG | ( | UObject_StaticAllocateObject | ) |
| LLM_DEFINE_TAG | ( | UObject_StaticConstructObjectInternal | ) |
| int32 LoadAssetAsync | ( | FTopLevelAssetPath | InAssetPath, |
| FLoadAssetAsyncDelegate | InCompletionDelegate, | ||
| FLoadAssetAsyncOptionalParams | InOptionalParams = FLoadAssetAsyncOptionalParams() |
||
| ) |
Asynchronously load a top level asset along with other objects in the same package. This is non-blocking and will call LoadPackageAsync. FSoftObjectPath::LoadAsync can be used to asynchronously load subobjects.
| InAssetPath | Top level asset to load |
| InCompletionDelegate | Delegate to be invoked when the async load finishes, this will execute on the game thread as soon as the load succeeds or fails |
| InOptionalParams | Optional parameters |
| UPackage * LoadPackage | ( | UPackage * | InOuter, |
| const FPackagePath & | InPackagePath, | ||
| uint32 | LoadFlags, | ||
| FArchive * | InReaderOverride = nullptr, |
||
| const FLinkerInstancingContext * | InstancingContext = nullptr, |
||
| const FPackagePath * | DiffPackagePath = nullptr |
||
| ) |
Loads a package and all contained objects that match context flags.
| InOuter | Package to load new package into (usually nullptr or ULevel->GetOuter()) |
| InPackagePath | PackagePath to load, must be non-empty |
| LoadFlags | Flags controlling loading behavior, from the ELoadFlags enum |
| InReaderOverride | Optional archive to use for reading package data |
| InLoadContext | Additional context when called during serialization |
| InstancingContext | Additional context to map object names to their instanced counterpart when loading an instanced package |
| DiffPackagePath | An additional PackagePath to load and compare to the package at InPackagePath, used when diffing packages |
| UPackage * LoadPackage | ( | UPackage * | InOuter, |
| const TCHAR * | InLongPackageName, | ||
| uint32 | LoadFlags, | ||
| FArchive * | InReaderOverride = nullptr, |
||
| const FLinkerInstancingContext * | InstancingContext = nullptr |
||
| ) |
Loads a package and all contained objects that match context flags.
| InOuter | Package to load new package into (usually nullptr or ULevel->GetOuter()) |
| InLongPackageName | Long package name to load, if null the name is taken from InOuter |
| LoadFlags | Flags controlling loading behavior, from the ELoadFlags enum |
| InReaderOverride | Optional archive to use for reading package data |
| InLoadContext | Additional context when called during serialization |
| InstancingContext | Additional context to map object names to their instanced counterpart when loading an instanced package |
| UPackage * LoadPackageInternal | ( | UPackage * | InOuter, |
| const FPackagePath & | PackagePath, | ||
| uint32 | LoadFlags, | ||
| FLinkerLoad * | ImportLinker, | ||
| FArchive * | InReaderOverride, | ||
| const FLinkerInstancingContext * | InstancingContext, | ||
| const FPackagePath * | DiffPackagePath | ||
| ) |
| FName MakeObjectNameFromDisplayLabel | ( | const FString & | DisplayLabel, |
| const FName | CurrentObjectName | ||
| ) |
Given a display label string, generates an FName slug that is a valid FName for that label. If the object's current name is already satisfactory, then that name will be returned. For example, "[MyObject]: Object Label" becomes "MyObjectObjectLabel" FName slug.
Note: The generated name isn't guaranteed to be unique.
| DisplayLabel | The label string to convert to an FName |
| CurrentObjectName | The object's current name, or NAME_None if it has no name yet |
| FName MakeUniqueObjectName | ( | UObject * | Outer, |
| const UClass * | Class, | ||
| FName | BaseName = NAME_None, |
||
| EUniqueObjectNameOptions | Options = EUniqueObjectNameOptions::None |
||
| ) |
Create a unique name by combining a base name and an arbitrary number string. The object name returned is guaranteed not to exist.
| Outer | the outer for the object that needs to be named |
| Class | the class for the object |
| BaseName | optional base name to use when generating the unique object name; if not specified, the class's name is used |
| Options | Additional options. See EUniqueObjectNameOptions. |
| FName MakeUniversallyUniqueObjectName | ( | UObject * | Outer, |
| FName | InBaseName = NAME_None, |
||
| FUniversallyUniqueObjectNameGenerator const * | Generator = nullptr |
||
| ) |
Create a universally unique name by combining a base name, a GUID and a timestamp. The object name returned is guaranteed not to locally and globally exist.
| Outer | the outer for the object that needs to be named |
| BaseName | optional base name to use when generating the globally unique object name. |
| Generator | optional generator session that can be passed to not use instead of the global one. |
|
constexpr |
|
constexpr |
| bool ParseObject | ( | const TCHAR * | Stream, |
| const TCHAR * | Match, | ||
| UClass * | Class, | ||
| UObject *& | DestRes, | ||
| UObject * | InParent, | ||
| EParseObjectLoadingPolicy | LoadingPolicy, | ||
| bool * | bInvalidObject = nullptr |
||
| ) |
Parse a reference to an object from a text representation
| Stream | String containing text to parse |
| Match | Tag to search for object representation within string |
| Class | The class of the object to be found. |
| DestRes | Returned object pointer |
| InParent | Outer to search @oaran LoadingPolicy Controls whether the parse will attempt to load a fully qualified object reference, if needed. |
| bInvalidObject | [opt] Optional output. If true, Tag was matched but the specified object wasn't found. |
| FString ResolveIniObjectsReference | ( | const FString & | ObjectReference, |
| const FString * | IniFilename = nullptr, |
||
| bool | bThrow = false |
||
| ) |
Resolves ini object path to string object path. This used to happen automatically in ResolveName but now must be called manually
| ObjectReference | Ini reference, of the form engine-ini:/Script/Engine.Engine.DefaultMaterialName |
| IniFilename | Ini filename. If null it will call GetIniFilenameFromObjectsReference |
| bThrow | If true, will print an error if it can't find the file |
| bool ResolveName | ( | UObject *& | Outer, |
| FString & | ObjectsReferenceString, | ||
| bool | Create, | ||
| bool | Throw, | ||
| uint32 | LoadFlags = LOAD_None, |
||
| const FLinkerInstancingContext * | InstancingContext = nullptr |
||
| ) |
Internal function that takes a fully qualified or relative object path string and converts it into a path relative to a package. Normally, you should call one of the FindObject or LoadObject functions instead.
| Outer | The package to search within. If null, ObjectsReferenceString be a globally scoped path and this will be filled in with the actual package if found/created |
| ObjectsReferenceString | The object path string to resolve. If it is successfully resolved, this will be replaced with a path relative to Outer |
| Create | If true, it will try to load or create the required package if it is not in memory |
| Throw | If true, it will potentially raise an error if the object cannot be found |
| LoadFlags | Flags to use if Create is true and it needs to load a package, from the ELoadFlags enum |
| InstancingContext | The linker instancing context used to resolve package name during instacning (i.e. when a package file is loaded into a package with a different name) |
| bool ResolveName2 | ( | UObject *& | InPackage, |
| FStringBuilderBase & | InOutName, | ||
| bool | Create, | ||
| bool | Throw, | ||
| uint32 | LoadFlags = LOAD_None, |
||
| const FLinkerInstancingContext * | InstancingContext = nullptr |
||
| ) |
Internal function used to possibly output an error message, taking into account the outer and LoadFlags. Returns true if a log message was emitted.
Save a copy of this object into the transaction buffer if we are currently recording into one (undo/redo). If bMarkDirty is true, will also mark the package as needing to be saved.
| bMarkDirty | If true, marks the package dirty if we are currently recording into a transaction buffer |
| Object | object to save. |
| bool ShouldAlwaysLoadPackageAsync | ( | const FPackagePath & | InPackagePath | ) |
| bool ShouldCreateThrottledSlowTask | ( | ) |
| bool ShouldReportProgress | ( | ) |
Check whether we should report progress or not
Causes the transaction system to emit a snapshot event for the given object if the following conditions are met: a) The object is currently transacting. b) The object has changed since it started transacting.
| Object | object to snapshot. |
| Properties | optional list of properties that have potentially changed on the object (to avoid snapshotting the entire object). |
| void SnapshotTransactionBuffer | ( | UObject * | Object, |
| TArrayView< const FProperty * > | Properties | ||
| ) |
| UE_AUTORTFM_ASSUME_SAFE UObject * StaticAllocateObject | ( | const UClass * | Class, |
| UObject * | InOuter, | ||
| FName | Name, | ||
| EObjectFlags | SetFlags, | ||
| EInternalObjectFlags | InternalSetFlags = EInternalObjectFlags::None, |
||
| bool | bCanReuseSubobjects = false, |
||
| bool * | bOutReusedSubobject = nullptr, |
||
| UPackage * | ExternalPackage = nullptr, |
||
| int32 | SerialNumber = 0, |
||
| FRemoteObjectId | RemoteId = FRemoteObjectId(), |
||
| class FGCReconstructionGuard * | GCGuard = nullptr |
||
| ) |
Create a new instance of an object or replace an existing object. If both an Outer and Name are specified, and there is an object already in memory with the same Class, Outer, and Name, the existing object will be destructed, and the new object will be created in its place.
| Class | the class of the object to create |
| InOuter | the object to create this object within (the Outer property for the new object will be set to the value specified here). |
| Name | the name to give the new object. If no value (NAME_None) is specified, the object will be given a unique name in the form of ClassName_#. |
| SetFlags | the ObjectFlags to assign to the new object. some flags can affect the behavior of constructing the object. |
| InternalSetFlags | the InternalObjectFlags to assign to the new object. some flags can affect the behavior of constructing the object. |
| bCanReuseSubobjects | if set to true, SAO will not attempt to destroy a subobject if it already exists in memory. |
| bOutReusedSubobject | flag indicating if the object is a subobject that has already been created (in which case further initialization is not necessary). |
| ExternalPackage | External Package assigned to the allocated object, if any |
| RemoteId | Globally unique id for this object |
| GCGuard | Special synchronization object that prevents GC from running when reconstructing an object on top of existing one |
| UObject * StaticConstructObject_Internal | ( | const FStaticConstructObjectParameters & | Params | ) |
Create a new instance of an object. The returned object will be fully initialized. If InFlags contains RF_NeedsLoad (indicating that the object still needs to load its object data from disk), components are not instanced (this will instead occur in PostLoad()). The different between StaticConstructObject and StaticAllocateObject is that StaticConstructObject will also call the class constructor on the object and instance any components.
| Params | The parameters to use when construction the object. |
| UObject * StaticDuplicateObject | ( | UObject const * | SourceObject, |
| UObject * | DestOuter, | ||
| const FName | DestName = NAME_None, |
||
| EObjectFlags | FlagMask = RF_AllFlags, |
||
| UClass * | DestClass = nullptr, |
||
| EDuplicateMode::Type | DuplicateMode = EDuplicateMode::Normal, |
||
| EInternalObjectFlags | InternalFlagsMask = EInternalObjectFlags_AllFlags |
||
| ) |
Creates a copy of SourceObject using the Outer and Name specified, as well as copies of all objects contained by SourceObject.
Any objects referenced by SourceOuter or RootObject and contained by SourceOuter are also copied, maintaining their name relative to SourceOuter. Any references to objects that are duplicated are automatically replaced with the copy of the object.
| SourceObject | The object to duplicate |
| DestOuter | The object to use as the Outer for the copy of SourceObject |
| DestName | The name to use for the copy of SourceObject, if none it will be autogenerated |
| FlagMask | A bitmask of EObjectFlags that should be propagated to the object copies. The resulting object copies will only have the object flags specified copied from their source object. |
| DestClass | Optional class to specify for the destination object. MUST BE SERIALIZATION COMPATIBLE WITH SOURCE OBJECT!!! |
| InternalFlagsMask | Bitmask of EInternalObjectFlags that should be propagated to the object copies. |
| UObject * StaticDuplicateObjectEx | ( | FObjectDuplicationParameters & | Parameters | ) |
Creates a copy of SourceObject using the Outer and Name specified, as well as copies of all objects contained by SourceObject. Any objects referenced by SourceOuter or RootObject and contained by SourceOuter are also copied, maintaining their name relative to SourceOuter. Any references to objects that are duplicated are automatically replaced with the copy of the object.
| Parameters | Specific options to use when duplicating this object |
| bool StaticFindAllObjects | ( | TArray< UObject * > & | OutFoundObjects, |
| UClass * | Class, | ||
| const TCHAR * | Name, | ||
| EFindObjectFlags | Flags = EFindObjectFlags::None |
||
| ) |
Tries to find all objects matching the search parameters in memory. This will handle fully qualified paths of the form /path/packagename.object:subobject and resolve references for you.
| OutFoundObjects | Array of objects matching the search parameters |
| Class | The to be found object's class |
| Name | The object path to search for an object, relative to InOuter |
| Flags | Flags which control the search |
| bool StaticFindAllObjectsFast | ( | TArray< UObject * > & | OutFoundObjects, |
| UClass * | ObjectClass, | ||
| FName | ObjectName, | ||
| EFindObjectFlags | Flags = EFindObjectFlags::None, |
||
| EObjectFlags | ExclusiveFlags = RF_NoFlags, |
||
| EInternalObjectFlags | ExclusiveInternalFlags = EInternalObjectFlags::None |
||
| ) |
Fast version of StaticFindAllObjects that relies on the passed in FName being the object name without any group/package qualifiers. This will find all objects matching the specified name and class.
| OutFoundObjects | Array of objects matching the search parameters |
| ObjectClass | The to be found object's class |
| ObjectName | Object name to look for relative to InOuter |
| Flags | Flags which control the search |
| ExclusiveFlags | Ignores objects that contain any of the specified exclusive flags |
| ExclusiveInternalFlags | Ignores objects that contain any of the specified internal exclusive flags |
| bool StaticFindAllObjectsFastSafe | ( | TArray< UObject * > & | OutFoundObjects, |
| UClass * | ObjectClass, | ||
| FName | ObjectName, | ||
| EFindObjectFlags | Flags = EFindObjectFlags::None, |
||
| EObjectFlags | ExclusiveFlags = RF_NoFlags, |
||
| EInternalObjectFlags | ExclusiveInternalFlags = EInternalObjectFlags::None |
||
| ) |
Fast version of StaticFindAllObjects that relies on the passed in FName being the object name without any group/package qualifiers. This will find all objects matching the specified name and class. This version of StaticFindAllObjectsFast will not assert on GIsSavingPackage or IsGarbageCollecting()
| OutFoundObjects | Array of objects matching the search parameters |
| ObjectClass | The to be found object's class |
| ObjectName | Object name to look for relative to InOuter |
| Flags | Flags which control the search |
| ExclusiveFlags | Ignores objects that contain any of the specified exclusive flags |
| ExclusiveInternalFlags | Ignores objects that contain any of the specified internal exclusive flags |
| bool StaticFindAllObjectsSafe | ( | TArray< UObject * > & | OutFoundObjects, |
| UClass * | Class, | ||
| const TCHAR * | Name, | ||
| EFindObjectFlags | Flags = EFindObjectFlags::None |
||
| ) |
Tries to find all objects matching the search parameters in memory. This will handle fully qualified paths of the form /path/packagename.object:subobject and resolve references for you. This version of StaticFindAllObjects will not assert on GIsSavingPackage or IsGarbageCollecting()
| OutFoundObjects | Array of objects matching the search parameters |
| Class | The to be found object's class |
| Name | The object path to search for an object, relative to InOuter |
| Flags | Flags which control the search |
| UObject * StaticFindFirstObject | ( | UClass * | Class, |
| FStringView | Name, | ||
| EFindFirstObjectOptions | Options = EFindFirstObjectOptions::None, |
||
| ELogVerbosity::Type | AmbiguousMessageVerbosity = ELogVerbosity::NoLogging, |
||
| const TCHAR * | InCurrentOperation = nullptr |
||
| ) |
Tries to find the first object matching the search parameters in memory. This will handle fully qualified paths of the form /path/packagename.object:subobject and resolve references for you. If multiple objects share the same name the returned object is random and not based on its time of creation unless otherwise specified in Options (see EFindFirstObjectOptions::NativeFirst) This function is slow and should not be used in performance critical situations.
| Class | The to be found object's class |
| Name | The object path to search for an object, relative to InOuter |
| Options | Search options |
| AmbiguousMessageVerbosity | Verbosity with which to print a message if the search result is ambiguous |
| InCurrentOperation | Current operation to be logged with ambiguous search warning |
| UObject * StaticFindFirstObjectSafe | ( | UClass * | Class, |
| FStringView | Name, | ||
| EFindFirstObjectOptions | Options = EFindFirstObjectOptions::None, |
||
| ELogVerbosity::Type | AmbiguousMessageVerbosity = ELogVerbosity::NoLogging, |
||
| const TCHAR * | InCurrentOperation = nullptr |
||
| ) |
Tries to find the first objects matching the search parameters in memory. This will handle fully qualified paths of the form /path/packagename.object:subobject and resolve references for you. This version of StaticFindFirstObject will not assert on GIsSavingPackage or IsGarbageCollecting() If multiple objects share the same name the returned object is random and not based on its time of creation unless otherwise specified in Options (see EFindFirstObjectOptions::NativeFirst) This function is slow and should not be used in performance critical situations.
| Class | The to be found object's class |
| Name | The object path to search for an object, relative to InOuter |
| Options | Search options |
| AmbiguousMessageVerbosity | Verbosity with which to print a message if the search result is ambiguous |
| InCurrentOperation | Current operation to be logged with ambiguous search warning |
| UObject * StaticFindObject | ( | UClass * | Class, |
| FTopLevelAssetPath | ObjectPath, | ||
| EFindObjectFlags | Flags = EFindObjectFlags::None |
||
| ) |
Tries to find an object in memory. This version uses FTopLevelAssetPath to find the object.
| Class | The to be found object's class |
| ObjectPath | FName pair representing the outer package object and the inner top level object (asset) |
| Flags | Flags which control the search |
| UObject * StaticFindObject | ( | UClass * | Class, |
| UObject * | InOuter, | ||
| FStringView | Name, | ||
| EFindObjectFlags | Flags = EFindObjectFlags::None |
||
| ) |
Tries to find an object in memory. This will handle fully qualified paths of the form /path/packagename.object:subobject and resolve references for you.
| Class | The to be found object's class |
| InOuter | Outer object to look inside. If this is null then InName should start with a package name |
| InName | The object path to search for an object, relative to InOuter |
| Flags | Flags which control the search |
| UObject * StaticFindObjectChecked | ( | UClass * | Class, |
| UObject * | InOuter, | ||
| FStringView | Name, | ||
| EFindObjectFlags | Flags = EFindObjectFlags::None |
||
| ) |
Version of StaticFindObject() that will assert if the object is not found
| UObject * StaticFindObjectFast | ( | UClass * | Class, |
| UObject * | InOuter, | ||
| FName | InName, | ||
| EFindObjectFlags | Flags = EFindObjectFlags::None, |
||
| EObjectFlags | ExclusiveFlags = RF_NoFlags, |
||
| EInternalObjectFlags | ExclusiveInternalFlags = EInternalObjectFlags::None |
||
| ) |
Fast version of StaticFindObject that relies on the passed in FName being the object name without any group/package qualifiers. This will only find top level packages or subobjects nested directly within a passed in outer.
| Class | The to be found object's class |
| InOuter | Outer object to look inside, if null this will only look for top level packages |
| InName | Object name to look for relative to InOuter |
| Flags | Flags which control the search |
| ExclusiveFlags | Ignores objects that contain any of the specified exclusive flags |
| ExclusiveInternalFlags | Ignores objects that contain any of the specified internal exclusive flags |
| UObject * StaticFindObjectFastSafe | ( | UClass * | Class, |
| UObject * | InOuter, | ||
| FName | InName, | ||
| EFindObjectFlags | Flags = EFindObjectFlags::None, |
||
| EObjectFlags | ExclusiveFlags = RF_NoFlags, |
||
| EInternalObjectFlags | ExclusiveInternalFlags = EInternalObjectFlags::None |
||
| ) |
Fast and safe version of StaticFindObject that relies on the passed in FName being the object name without any group/package qualifiers. It will not assert on GIsSavingPackage or IsGarbageCollectingAndLockingUObjectHashTables(). If called from within package saving code or GC, will return nullptr This will only find top level packages or subobjects nested directly within a passed in outer.
| Class | The to be found object's class |
| InOuter | Outer object to look inside, if null this will only look for top level packages |
| InName | Object name to look for relative to InOuter |
| Flags | Flags which control the search |
| ExclusiveFlags | Ignores objects that contain any of the specified exclusive flags |
| ExclusiveInternalFlags | Ignores objects that contain any of the specified internal exclusive flags |
| UObject * StaticFindObjectSafe | ( | UClass * | Class, |
| FTopLevelAssetPath | ObjectPath, | ||
| EFindObjectFlags | Flags = EFindObjectFlags::None |
||
| ) |
Tries to find an object in memory. This version uses FTopLevelAssetPath to find the object. Version of StaticFindObject that will not assert on GIsSavingPackage or IsGarbageCollectingAndLockingUObjectHashTables()
| Class | The to be found object's class |
| ObjectPath | FName pair representing the outer package object and the inner top level object (asset) |
| Flags | Flags which control the search |
| UObject * StaticFindObjectSafe | ( | UClass * | Class, |
| UObject * | InOuter, | ||
| FStringView | Name, | ||
| EFindObjectFlags | Flags = EFindObjectFlags::None |
||
| ) |
Internal version of StaticFindObject that will not assert on GIsSavingPackage or IsGarbageCollectingAndLockingUObjectHashTables()
| UObject * StaticLoadAsset | ( | UClass * | Class, |
| FTopLevelAssetPath | InPath, | ||
| uint32 | LoadFlags = LOAD_None, |
||
| const FLinkerInstancingContext * | InstancingContext = nullptr |
||
| ) |
Find or load an object that is one of the top level assets in a package.
| Class | The class (or a superclass) of the object to be loaded. |
| InPath | FName pair representing the outer package object and the inner top level object (asset) |
| LoadFlags | Flags controlling how to handle loading from disk, from the ELoadFlags enum |
| InstancingContext | InstancingContext used to remap imports when loading a package under a new name |
| UClass * StaticLoadClass | ( | UClass * | BaseClass, |
| UObject * | InOuter, | ||
| FStringView | Name, | ||
| FStringView | Filename = {}, |
||
| uint32 | LoadFlags = LOAD_None, |
||
| UPackageMap * | Sandbox = nullptr |
||
| ) |
Version of StaticLoadObject() that will load classes
| UObject * StaticLoadObject | ( | UClass * | Class, |
| UObject * | InOuter, | ||
| FStringView | Name, | ||
| FStringView | Filename = {}, |
||
| uint32 | LoadFlags = LOAD_None, |
||
| UPackageMap * | Sandbox = nullptr, |
||
| bool | bAllowObjectReconciliation = true, |
||
| const FLinkerInstancingContext * | InstancingContext = nullptr |
||
| ) |
Find or load an object by string name with optional outer and filename specifications. These are optional because the InName can contain all of the necessary information.
| Class | The class (or a superclass) of the object to be loaded. |
| InOuter | An optional object to narrow where to find/load the object from |
| Name | String name of the object. If it's not fully qualified, InOuter and/or Filename will be needed |
| Filename | An optional file to load from (Deprecated parameter) |
| LoadFlags | Flags controlling how to handle loading from disk, from the ELoadFlags enum |
| Sandbox | A list of packages to restrict the search for the object (Deprecated parameter) |
| bAllowObjectReconciliation | Whether to allow the object to be found via FindObject before forcing a load (Deprecated parameter) |
| InstancingContext | InstancingContext used to remap imports when loading a package under a new name |
| UObject * StaticLoadObjectInternal | ( | UClass * | ObjectClass, |
| UObject * | InOuter, | ||
| FStringView | InName, | ||
| FStringView | Filename, | ||
| uint32 | LoadFlags, | ||
| UPackageMap * | Sandbox, | ||
| bool | bAllowObjectReconciliation, | ||
| const FLinkerInstancingContext * | InstancingContext | ||
| ) |
Static UObject tick function, used to verify certain key assumptions and to tick the async loading code.
| DeltaTime | Time in seconds since last call |
| bUseFullTimeLimit | If true, use the entire time limit even if blocked on I/O |
| AsyncLoadingTime | Time in seconds to use for async loading limit |
| int32 UpdateSuffixForNextNewObject | ( | UObject * | Parent, |
| const UClass * | Class, | ||
| TFunctionRef< void(int32 &)> | IndexMutator | ||
| ) |
Internal function used to update the suffix to be given to the next newly-created unnamed object.
| int32 UpdateSuffixForNextNewObject | ( | UObject * | Parent, |
| FName | BaseName, | ||
| TFunctionRef< void(int32 &)> | IndexMutator | ||
| ) |
Updates the suffix to be given to the next newly-created unnamed object.
Updating is done via a callback because a lock needs to be maintained while this happens.
| int32 GAllowUnversionedContentInEditor = 0 |
This allows loading unversioned cooked content in the editor
| COREUOBJECT_API bool GOutputCookingWarnings = false |