UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ObjectRef.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "UObject/ObjectFwd.h"
9
10#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
11
13
14
15struct FObjectRef;
16
18{
19 struct FPackedObjectRef;
20 class FObjectPathId;
22}
23
30struct FObjectRef
31{
32 FObjectRef() = default;
33 FObjectRef(FName PackageName, FName ClassPackageName, FName ClassName, UE::CoreUObject::Private::FObjectPathId ObjectPath);
34 explicit FObjectRef(const UObject* Object);
35
36 bool operator==(const FObjectRef&& Other) const
37 {
38 return (PackageName == Other.PackageName) && (ObjectPathId == Other.ObjectPathId) && (ClassPackageName == Other.ClassPackageName) && (ClassName == Other.ClassName);
39 }
40
43 {
46 return FString(Result);
47 }
48
51
54
56 FString GetPathName() const
57 {
59 AppendPathName(Result);
60 return FString(Result);
61 }
62
65
68 {
71 return FString(FullName);
72 }
73
76 {
77 OutFullNameBuilder.Reset();
79 OutFullNameBuilder.AppendChar(TEXT(' '));
81 }
82
84 FString GetExportTextName() const
85 {
87 GetExportTextName(ExportTextName);
88 return FString(ExportTextName);
89 }
90
92 void GetExportTextName(FStringBuilderBase& OutExportTextNameBuilder) const
93 {
96 OutExportTextNameBuilder.AppendChar(TEXT('\''));
98 OutExportTextNameBuilder.AppendChar(TEXT('\''));
99 }
100
101 inline bool IsNull() const
102 {
103 return PackageName.IsNone() && ObjectPathId == 0;
104 }
105
107 COREUOBJECT_API UObject* Resolve(uint32 LoadFlags = LOAD_None) const;
108
109public:
110 FName PackageName;
111 FName ClassPackageName;
112 FName ClassName;
113
114private:
116
117 friend UE::CoreUObject::Private::FPackedObjectRef UE::CoreUObject::Private::MakePackedObjectRef(const FObjectRef& ObjectRef);
119
120};
121
122UE_DEPRECATED(5.2, "Use FObjectRef::IsNull() instead")
123inline bool IsObjectRefNull(const FObjectRef& ObjectRef) { return ObjectRef.IsNull(); }
124
125#endif
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
EObjectFullNameFlags
Definition ObjectFwd.h:12
@ LOAD_None
No flags.
Definition ObjectMacros.h:69
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition StringBuilder.h:509
Definition Class.h:3793
Definition ObjectPathId.h:63
Definition Object.h:95
bool operator==(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:501
Definition CoreGlobals.cpp:268
FString GetPathName(const UObject *Obj, const UObject *StopOuter)
Definition ObjectFwd.cpp:28
FString GetFullName(const UObject *Obj, const UObject *StopOuter, EObjectFullNameFlags Flags)
Definition ObjectFwd.cpp:38
FName GetFName(const UObject *Obj)
Definition ObjectFwd.cpp:13
UE_STRING_CLASS Result(Forward< LhsType >(Lhs), RhsLen)
Definition String.cpp.inl:732
void AppendPathName(FStringBuilderBase &StringBuilder, const UObject *Object)
Definition PropertyBag.cpp:70