UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UniversalObjectLocator.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
10#include "UniversalObjectLocator.generated.h"
11
13{
14 struct FUniversalObjectLocatorCustomization;
15 struct FFragmentItem;
16}
17
30USTRUCT(BlueprintType, Category=GameFramework, meta=(HasNativeMake="/Script/Engine.UniversalObjectLocatorScriptingExtensions.MakeUniversalObjectLocator"))
32{
34
40
45
55
59 bool IsEmpty() const
60 {
61 return Fragments.Num() == 0;
62 }
63
70 UNIVERSALOBJECTLOCATOR_API FResolveResult Resolve(const FResolveParams& Params) const;
71
79 UNIVERSALOBJECTLOCATOR_API FResolveResult AsyncFind(UObject* Context = nullptr) const;
80
88 UNIVERSALOBJECTLOCATOR_API FResolveResult AsyncLoad(UObject* Context = nullptr) const;
89
97 UNIVERSALOBJECTLOCATOR_API FResolveResult AsyncUnload(UObject* Context = nullptr) const;
98
106 UNIVERSALOBJECTLOCATOR_API UObject* SyncFind(UObject* Context = nullptr) const;
107
115 UNIVERSALOBJECTLOCATOR_API UObject* SyncLoad(UObject* Context = nullptr) const;
116
124 UNIVERSALOBJECTLOCATOR_API void SyncUnload(UObject* Context = nullptr) const;
125
130
135
141 UNIVERSALOBJECTLOCATOR_API void ToString(FStringBuilderBase& OutString) const;
142
150 UNIVERSALOBJECTLOCATOR_API FParseStringResult TryParseString(FStringView InString, const FParseStringParams& InParams);
151
160 static UNIVERSALOBJECTLOCATOR_API FUniversalObjectLocator FromString(FStringView InString, const FParseStringParams& InParams);
161
162public:
163
168
178
185
191 template<typename FragmentType, typename ...ArgTypes>
192 void AddFragment(ArgTypes&&... FragmentArgs);
193
198
202 UNIVERSALOBJECTLOCATOR_API const FUniversalObjectLocatorFragment* GetLastFragment() const;
203
210
211 /*
212 * Iterates over all fragments and combines their types' default flags.
213 */
215
221
227
231 UNIVERSALOBJECTLOCATOR_API friend uint32 GetTypeHash(const FUniversalObjectLocator& Locator);
232
233 /*~ Begin TStructOpsTypeTraits implementation */
234 UNIVERSALOBJECTLOCATOR_API bool ExportTextItem(FString& ValueStr, const FUniversalObjectLocator& DefaultValue, UObject* Parent, int32 PortFlags, UObject* ExportRootScope) const;
235 UNIVERSALOBJECTLOCATOR_API bool ImportTextItem(const TCHAR*& Buffer, int32 PortFlags, UObject* Parent, FOutputDevice* ErrorText, FArchive* InSerializingArchive = nullptr);
236 UNIVERSALOBJECTLOCATOR_API bool SerializeFromMismatchedTag(const FPropertyTag& Tag, FStructuredArchive::FSlot Slot);
237 /*~ End TStructOpsTypeTraits implementation */
238
239private:
242
243 FResolveResult ResolveSyncImpl(const FResolveParams& Params) const;
244 FResolveResult ResolveAsyncImpl(const FResolveParams& Params) const;
245
246private:
247
249 UPROPERTY()
251
252 friend struct UE::UniversalObjectLocator::FUniversalObjectLocatorCustomization;
254};
255
256template<typename FragmentType, typename ...ArgTypes>
262
263template<>
274
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
bool TryParseString(FFrameRate &OutFrameRate, const TCHAR *InString)
Definition FrameRate.cpp:343
UE_FORCEINLINE_HINT bool operator!=(const FIndexedPointer &Other) const
Definition LockFreeList.h:76
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition OutputDevice.h:133
Definition StructuredArchiveSlots.h:52
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition Object.h:95
Definition UniversalObjectLocator.Build.cs:6
Definition AnimInstanceLocatorFragment.cpp:19
EFragmentTypeFlags
Definition UniversalObjectLocatorFragmentType.h:26
Definition AdvancedWidgetsModule.cpp:13
Definition PropertyTag.h:38
Definition UniversalObjectLocatorFragment.h:36
Definition UniversalObjectLocator.h:32
Definition StructOpsTypeTraits.h:11
@ WithStructuredSerializeFromMismatchedTag
Definition StructOpsTypeTraits.h:29
@ WithIdenticalViaEquality
Definition StructOpsTypeTraits.h:18
@ WithExportTextItem
Definition StructOpsTypeTraits.h:20
@ WithImportTextItem
Definition StructOpsTypeTraits.h:21
Definition StructOpsTypeTraits.h:46
Definition UniversalObjectLocatorFragment.h:442
Definition UniversalObjectLocatorFragmentTypeHandle.h:19
Definition UniversalObjectLocatorFragmentType.h:70
Definition UniversalObjectLocatorStringParams.h:26
Definition UniversalObjectLocatorStringParams.h:43
Definition UniversalObjectLocatorResolveParams.h:47
Definition UniversalObjectLocatorResolveParams.h:181
Definition UniversalObjectLocatorResolveParams.h:205