UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ObjectLibrary.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "UObject/Object.h"
9#include "ObjectLibrary.generated.h"
10
12
14UCLASS(MinimalAPI)
16{
18
19
20 UPROPERTY(EditAnywhere, Category=ObjectLibrary, meta=(AllowAbstract = ""))
21 TObjectPtr<UClass> ObjectBaseClass;
22
24 UPROPERTY(EditAnywhere, Category=ObjectLibrary)
25 bool bHasBlueprintClasses;
26
27protected:
28
30 UPROPERTY(EditAnywhere, Category=ObjectLibrary)
32
34 UPROPERTY()
35 TArray<TWeakObjectPtr <UObject> > WeakObjects;
36
39 bool bUseWeakReferences;
40
43 bool bIsFullyLoaded;
44
46 TArray<FAssetData> AssetDataList;
47
48public:
49 //~ Begin UObject Interface
50#if WITH_EDITOR
51 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
52 virtual void PostLoad() override;
53#endif // WITH_EDITOR
54 //~ End UObject Interface
55
64
66 virtual void UseWeakReferences(bool bSetUseWeak);
67
69 virtual bool AddObject(UObject *NewObject);
70
72 virtual bool RemoveObject(UObject *ObjectToRemove);
73
76
79
81 template <typename T>
83 {
84 for (int32 i = 0; i < Objects.Num(); i++)
85 {
86 T* Obj = Cast<T>(Objects[i]);
87 if (Obj)
88 {
89 OutObjects.Add(Obj);
90 }
91 }
92
93 for (int32 i = 0; i < WeakObjects.Num(); i++)
94 {
95 T* Obj = Cast<T>(WeakObjects[i].Get());
96 if (Obj)
97 {
98 OutObjects.Add(Obj);
99 }
100 }
101 }
102
105 {
106 return Objects.Num() + WeakObjects.Num();
107 }
108
111
114 {
115 return AssetDataList.Num();
116 }
117
119 {
120 return bIsFullyLoaded;
121 }
122
124 virtual void ClearLoaded();
125
127 virtual int32 LoadAssetsFromPaths(const TArray<FString>& Paths);
128
129 virtual int32 LoadAssetsFromPath(const FString& Path)
130 {
131 TArray<FString> Paths;
132 Paths.Add(Path);
133 return LoadAssetsFromPaths(Paths);
134 }
135
137 virtual int32 LoadBlueprintsFromPaths(const TArray<FString>& Paths);
138
139 virtual int32 LoadBlueprintsFromPath(const FString& Path)
140 {
141 TArray<FString> Paths;
142 Paths.Add(Path);
143 return LoadBlueprintsFromPaths(Paths);
144 }
145
147 virtual int32 LoadAssetDataFromPaths(const TArray<FString>& Paths, bool bForceSynchronousScan = true);
148
149 virtual int32 LoadAssetDataFromPath(const FString& Path)
150 {
151 TArray<FString> Paths;
152 Paths.Add(Path);
153 return LoadAssetDataFromPaths(Paths);
154 }
155
157 virtual int32 LoadBlueprintAssetDataFromPaths(const TArray<FString>& Paths, bool bForceSynchronousScan = true);
158
159 virtual int32 LoadBlueprintAssetDataFromPath(const FString& Path)
160 {
161 TArray<FString> Paths;
162 Paths.Add(Path);
164 }
165
168
171
174
175#if WITH_EDITOR
178
180 bool bIsGlobalAsyncScanEnvironment;
181
183 virtual void OnAssetRegistryFilesLoaded();
184#endif // WITH_EDITOR
185
186protected:
190};
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
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition Class.h:3793
Definition ObjectLibrary.h:16
DECLARE_EVENT_OneParam(UObjectLibrary, FObjectLibraryOnObjectRemoved, UObject *)
virtual int32 LoadAssetDataFromPaths(const TArray< FString > &Paths, bool bForceSynchronousScan=true)
Definition ObjectLibrary.cpp:323
virtual int32 LoadAssetsFromPaths(const TArray< FString > &Paths)
Definition ObjectLibrary.cpp:246
virtual int32 LoadBlueprintsFromPath(const FString &Path)
Definition ObjectLibrary.h:139
virtual bool AddObject(UObject *NewObject)
Definition ObjectLibrary.cpp:157
int32 GetObjectCount() const
Definition ObjectLibrary.h:104
virtual void ClearLoaded()
Definition ObjectLibrary.cpp:569
TArray< TWeakObjectPtr< UObject > > WeakObjects
Definition ObjectLibrary.h:35
virtual void UseWeakReferences(bool bSetUseWeak)
Definition ObjectLibrary.cpp:122
TArray< TObjectPtr< UObject > > Objects
Definition ObjectLibrary.h:31
virtual void GetAssetDataList(TArray< FAssetData > &OutAssetData)
Definition ObjectLibrary.cpp:577
virtual int32 LoadAssetsFromAssetData()
Definition ObjectLibrary.cpp:489
virtual int32 LoadBlueprintsFromPaths(const TArray< FString > &Paths)
Definition ObjectLibrary.cpp:282
bool IsLibraryFullyLoaded() const
Definition ObjectLibrary.h:118
FObjectLibraryOnObjectAdded & OnObjectAdded()
Definition ObjectLibrary.h:75
int32 GetAssetDataCount() const
Definition ObjectLibrary.h:113
DECLARE_EVENT_OneParam(UObjectLibrary, FObjectLibraryOnObjectAdded, UObject *)
bool bIsFullyLoaded
Definition ObjectLibrary.h:43
FObjectLibraryOnObjectRemoved & OnObjectRemoved()
Definition ObjectLibrary.h:78
FObjectLibraryOnObjectAdded OnObjectAddedEvent
Definition ObjectLibrary.h:188
FObjectLibraryOnObjectRemoved OnObjectRemovedEvent
Definition ObjectLibrary.h:189
bool bRecursivePaths
Definition ObjectLibrary.h:173
TArray< FAssetData > AssetDataList
Definition ObjectLibrary.h:46
static ENGINE_API class UObjectLibrary * CreateLibrary(UClass *InBaseClass, bool bInHasBlueprintClasses, bool bInUseWeak)
Definition ObjectLibrary.cpp:111
virtual int32 LoadAssetDataFromPath(const FString &Path)
Definition ObjectLibrary.h:149
void GetObjects(TArray< T * > &OutObjects)
Definition ObjectLibrary.h:82
virtual int32 LoadBlueprintAssetDataFromPath(const FString &Path)
Definition ObjectLibrary.h:159
virtual int32 LoadAssetsFromPath(const FString &Path)
Definition ObjectLibrary.h:129
virtual int32 LoadBlueprintAssetDataFromPaths(const TArray< FString > &Paths, bool bForceSynchronousScan=true)
Definition ObjectLibrary.cpp:382
bool bIncludeOnlyOnDiskAssets
Definition ObjectLibrary.h:170
Definition Object.h:95
Definition AssetData.h:162
Definition UnrealType.h:6865
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25