UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AssetManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "AssetManagerTypes.h"
7#include "StreamableManager.h"
12#include "Misc/SourceLocation.h"
14
15#include "AssetManager.generated.h"
16
18
19class IAssetRegistry;
20class ITargetPlatform;
21class FAssetManagerEditorModule;
22class FTimerManager;
24namespace UE::AssetRegistry { struct FShouldSetManagerContext; }
25namespace UE::Cook { class ICookInfo; }
30
34
37
40
47{
49 FStreamableDownloadPriority Priority = UE::StreamableManager::Private::DownloadDefaultPriority;
52
53 bool operator==(const FAssetManagerDownloadParams& Right) const = default;
54};
55
69
71{
72 None = 0, // No flags
73 BuildChunkMap = (1 << 0), // if the CachedChunkMap should be built or not.
74 ForceRefresh = (1 << 1), // When set the database will be forcibly refreshed.
75};
77
82UCLASS(MinimalAPI)
84{
86
87public:
90
91 UE_DEPRECATED(5.3, "AssetManager is now always constructed during UEngine::InitializeObjectReferences. Call IsInitialized instead if you need to check whether it has not yet been initialized.")
92 static ENGINE_API bool IsValid();
94 static ENGINE_API bool IsInitialized();
95
97 static ENGINE_API UAssetManager& Get();
98
99 UE_DEPRECATED(5.3, "AssetManager is now always constructed during UEngine::InitializeObjectReferences. Call GetIfInitialized instead if you need to check whether it has not yet been initialized.")
100 static ENGINE_API UAssetManager* GetIfValid();
102 static ENGINE_API UAssetManager* GetIfInitialized();
103
105 static FStreamableManager& GetStreamableManager() { return Get().StreamableManager; }
106
109
112
115
121
124
127
129 static ENGINE_API FName GetEncryptionKeyAssetTagName();
130
132 static ENGINE_API FPrimaryAssetId CreatePrimaryAssetIdFromChunkId(int32 ChunkId);
133
135 static ENGINE_API int32 ExtractChunkIdFromPrimaryAssetId(const FPrimaryAssetId& PrimaryAssetId);
136
137 // BUILDING ASSET DIRECTORY
138
151 ENGINE_API virtual int32 ScanPathsForPrimaryAssets(FPrimaryAssetType PrimaryAssetType, const TArray<FString>& Paths, UClass* BaseClass, bool bHasBlueprintClasses, bool bIsEditorOnly = false, bool bForceSynchronousScan = true);
152
154 ENGINE_API virtual int32 ScanPathForPrimaryAssets(FPrimaryAssetType PrimaryAssetType, const FString& Path, UClass* BaseClass, bool bHasBlueprintClasses, bool bIsEditorOnly = false, bool bForceSynchronousScan = true);
155
157 ENGINE_API void PushBulkScanning();
158 ENGINE_API void PopBulkScanning();
159
160 ENGINE_API virtual void RemoveScanPathsForPrimaryAssets(FPrimaryAssetType PrimaryAssetType, const TArray<FString>& Paths, UClass* BaseClass, bool bHasBlueprintClasses, bool bIsEditorOnly = false);
161
162 ENGINE_API virtual void RemovePrimaryAssetType(FPrimaryAssetType PrimaryAssetType);
163
164protected:
166 ENGINE_API virtual void StartBulkScanning();
168 ENGINE_API virtual void StopBulkScanning();
169 bool IsBulkScanning() const { return NumBulkScanRequests > 0 ; }
170
171public:
180 ENGINE_API virtual bool AddDynamicAsset(const FPrimaryAssetId& PrimaryAssetId, const FSoftObjectPath& AssetPath, const FAssetBundleData& BundleData);
181
183 ENGINE_API virtual void RecursivelyExpandBundleData(FAssetBundleData& BundleData) const;
184
186 static ENGINE_API void CallOrRegister_OnCompletedInitialScan(FSimpleMulticastDelegate::FDelegate&& Delegate);
187
189 static ENGINE_API void CallOrRegister_OnAssetManagerCreated(FSimpleMulticastDelegate::FDelegate&& Delegate);
190
192 ENGINE_API virtual bool HasInitialScanCompleted() const;
193
195 ENGINE_API FDelegateHandle Register_OnAddedAssetSearchRoot(FOnAddedAssetSearchRoot::FDelegate&& Delegate);
196
198 ENGINE_API void Unregister_OnAddedAssetSearchRoot(FDelegateHandle DelegateHandle);
199
201 ENGINE_API virtual bool ExpandVirtualPaths(TArray<FString>& InOutPaths) const;
202
204 ENGINE_API virtual void AddAssetSearchRoot(const FString& NewRootPath);
205
207 ENGINE_API const TArray<FString>& GetAssetSearchRoots(bool bIncludeDefaultRoots = true) const;
208
209
210 // ACCESSING ASSET DIRECTORY
211
213 ENGINE_API virtual bool GetPrimaryAssetData(const FPrimaryAssetId& PrimaryAssetId, FAssetData& AssetData) const;
214
216 ENGINE_API virtual bool GetPrimaryAssetDataList(FPrimaryAssetType PrimaryAssetType, TArray<FAssetData>& AssetDataList) const;
217
219 ENGINE_API virtual UObject* GetPrimaryAssetObject(const FPrimaryAssetId& PrimaryAssetId) const;
220
222 template<class AssetType>
223 inline AssetType* GetPrimaryAssetObject(const FPrimaryAssetId& PrimaryAssetId) const
224 {
225 UObject* ObjectReturn = GetPrimaryAssetObject(PrimaryAssetId);
227 }
228
229 template<class AssetType>
231 {
233 ReturnClass = Cast<UClass>(GetPrimaryAssetObject(PrimaryAssetId));
234 return ReturnClass;
235 }
236
238 ENGINE_API virtual bool GetPrimaryAssetObjectList(FPrimaryAssetType PrimaryAssetType, TArray<UObject*>& ObjectList) const;
239
241 ENGINE_API virtual FSoftObjectPath GetPrimaryAssetPath(const FPrimaryAssetId& PrimaryAssetId) const;
242
244 ENGINE_API virtual bool GetPrimaryAssetPathList(FPrimaryAssetType PrimaryAssetType, TArray<FSoftObjectPath>& AssetPathList) const;
245
247 ENGINE_API virtual FPrimaryAssetId GetPrimaryAssetIdForObject(UObject* Object) const;
248
250 ENGINE_API virtual FPrimaryAssetId GetPrimaryAssetIdForPath(const FSoftObjectPath& ObjectPath) const;
251
253 ENGINE_API virtual FPrimaryAssetId GetPrimaryAssetIdForPackage(FName PackagePath) const;
254
256 ENGINE_API virtual FPrimaryAssetId GetPrimaryAssetIdForData(const FAssetData& AssetData) const;
257
260
262 ENGINE_API virtual bool GetPrimaryAssetTypeInfo(FPrimaryAssetType PrimaryAssetType, FPrimaryAssetTypeInfo& AssetTypeInfo) const;
263
265 ENGINE_API virtual void GetPrimaryAssetTypeInfoList(TArray<FPrimaryAssetTypeInfo>& AssetTypeInfoList) const;
266
267 // ASYNC LOADING PRIMARY ASSETS
268
283 virtual TSharedPtr<FStreamableHandle> LoadPrimaryAssets(
284 const TArray<FPrimaryAssetId>& AssetsToLoad,
285 const TArray<FName>& LoadBundles = TArray<FName>(),
301 ENGINE_API virtual TSharedPtr<FStreamableHandle> LoadPrimaryAssets(
302 const TArray<FPrimaryAssetId>& AssetsToLoad,
303 const TArray<FName>& LoadBundles,
306
308 virtual TSharedPtr<FStreamableHandle> LoadPrimaryAsset(
310 const TArray<FName>& LoadBundles = TArray<FName>(),
315 ENGINE_API virtual TSharedPtr<FStreamableHandle> LoadPrimaryAsset(
317 const TArray<FName>& LoadBundles,
320
322 virtual TSharedPtr<FStreamableHandle> LoadPrimaryAssetsWithType(
323 FPrimaryAssetType PrimaryAssetType,
324 const TArray<FName>& LoadBundles = TArray<FName>(),
329 ENGINE_API virtual TSharedPtr<FStreamableHandle> LoadPrimaryAssetsWithType(
330 FPrimaryAssetType PrimaryAssetType,
331 const TArray<FName>& LoadBundles,
334
342 ENGINE_API virtual int32 UnloadPrimaryAssets(const TArray<FPrimaryAssetId>& AssetsToUnload);
343
345 ENGINE_API virtual int32 UnloadPrimaryAsset(const FPrimaryAssetId& AssetToUnload);
346
348 ENGINE_API virtual int32 UnloadPrimaryAssetsWithType(FPrimaryAssetType PrimaryAssetType);
349
365 virtual TSharedPtr<FStreamableHandle> ChangeBundleStateForPrimaryAssets(
369 bool bRemoveAllBundles = false,
386 ENGINE_API virtual TSharedPtr<FStreamableHandle> ChangeBundleStateForPrimaryAssets(
393
407 virtual TSharedPtr<FStreamableHandle> ChangeBundleStateForMatchingPrimaryAssets(
409 const TArray<FName>& OldBundles,
424 ENGINE_API virtual TSharedPtr<FStreamableHandle> ChangeBundleStateForMatchingPrimaryAssets(
426 const TArray<FName>& OldBundles,
429
438 ENGINE_API TSharedPtr<FStreamableHandle> GetPrimaryAssetHandle(const FPrimaryAssetId& PrimaryAssetId, bool bForceCurrent = false, TArray<FName>* Bundles = nullptr) const ;
439
450 ENGINE_API bool GetPrimaryAssetsWithBundleState(TArray<FPrimaryAssetId>& PrimaryAssetList, const TArray<FPrimaryAssetType>& ValidTypes, const TArray<FName>& RequiredBundles, const TArray<FName>& ExcludedBundles = TArray<FName>(), bool bForceCurrent = false) const;
451
453 ENGINE_API void GetPrimaryAssetBundleStateMap(TMap<FPrimaryAssetId, TArray<FName>>& BundleStateMap, bool bForceCurrent = false) const;
454
465 ENGINE_API bool GetPrimaryAssetLoadSet(TSet<FSoftObjectPath>& OutAssetLoadSet, const FPrimaryAssetId& PrimaryAssetId, const TArray<FName>& LoadBundles, bool bLoadRecursive) const;
466
477 ENGINE_API bool GetPrimaryAssetLoadList(TArray<FSoftObjectPath>& OutAssetLoadList, const FPrimaryAssetId& PrimaryAssetId, const TArray<FName>& LoadBundles, bool bLoadRecursive, bool bEnsureUniqueness = true) const;
478
492 virtual TSharedPtr<FStreamableHandle> PreloadPrimaryAssets(
493 const TArray<FPrimaryAssetId>& AssetsToLoad,
494 const TArray<FName>& LoadBundles,
495 bool bLoadRecursive,
510 ENGINE_API virtual TSharedPtr<FStreamableHandle> PreloadPrimaryAssets(
511 const TArray<FPrimaryAssetId>& AssetsToLoad,
512 const TArray<FName>& LoadBundles,
513 bool bLoadRecursive,
516
529 ENGINE_API virtual TSharedPtr<FStreamableHandle> PredownloadPrimaryAssets(
530 const TArray<FPrimaryAssetId>& AssetsToLoad,
531 const TArray<FName>& LoadBundles,
532 bool bLoadRecursive,
535
548 TSharedPtr<FStreamableHandle> LoadAssetList(
552 FString&& DebugName = FString(TEXT("LoadAssetList")),
555 TSharedPtr<FStreamableHandle> LoadAssetList(
559 FString&& DebugName = FString(TEXT("LoadAssetList")),
572 TSharedPtr<FStreamableHandle> LoadAssetList(
575 FString&& DebugName = FString(TEXT("LoadAssetList")),
577
589 ENGINE_API virtual TSharedPtr<FStreamableHandle> LoadAssetList(
592 FString&& DebugName = FString(TEXT("LoadAssetList")),
594
606 TSharedPtr<FStreamableHandle> DownloadAssetList(
609 FString&& DebugName = FString(TEXT("DownloadAssetList")),
615 FString&& DebugName = FString(TEXT("DownloadAssetList")),
617
619 ENGINE_API virtual FAssetBundleEntry GetAssetBundleEntry(const FPrimaryAssetId& BundleScope, FName BundleName) const;
620
622 ENGINE_API virtual bool GetAssetBundleEntries(const FPrimaryAssetId& BundleScope, TArray<FAssetBundleEntry>& OutEntries) const;
623
632
642
651
653 ENGINE_API virtual bool GetResourceAcquireProgress(int32& OutAcquiredCount, int32& OutRequestedCount) const;
654
655 // FUNCTIONS FOR MANAGEMENT/COOK RULES
656
658 ENGINE_API virtual void SetPrimaryAssetTypeRules(FPrimaryAssetType PrimaryAssetType, const FPrimaryAssetRules& Rules);
659
661 ENGINE_API virtual void SetPrimaryAssetRules(FPrimaryAssetId PrimaryAssetId, const FPrimaryAssetRules& Rules);
662 ENGINE_API virtual void SetPrimaryAssetRulesExplicitly(FPrimaryAssetId PrimaryAssetId, const FPrimaryAssetRulesExplicitOverride& ExplicitRules);
663
665 ENGINE_API virtual FPrimaryAssetRules GetPrimaryAssetRules(FPrimaryAssetId PrimaryAssetId) const;
666
668 ENGINE_API virtual bool GetManagedPackageList(FPrimaryAssetId PrimaryAssetId, TArray<FName>& AssetPackageList) const;
669
674 ENGINE_API virtual bool GetPackageCookRuleManagers(FName PackageName, bool bRecurseToParents,
676
683 ENGINE_API virtual bool GetPackageManagers(FName PackageName, bool bRecurseToParents,
685
687 ENGINE_API virtual bool GetPackageManagers(FName PackageName, bool bRecurseToParents, TSet<FPrimaryAssetId>& ManagerSet) const;
688
689protected:
690 ENGINE_API bool GetPackageManagersInternal(FName PackageName,
693public:
694
695 // GENERAL ASSET UTILITY FUNCTIONS
696
698 ENGINE_API virtual FPrimaryAssetId ExtractPrimaryAssetIdFromData(const FAssetData& AssetData, FPrimaryAssetType SuggestedType = FPrimaryAssetType()) const;
699
701 ENGINE_API virtual bool GetAssetDataForPath(const FSoftObjectPath& ObjectPath, FAssetData& AssetData) const;
702
704 ENGINE_API virtual bool IsAssetDataBlueprintOfClassSet(const FAssetData& AssetData, const TSet<FTopLevelAssetPath>& ClassNameSet) const;
705
707 ENGINE_API virtual FSoftObjectPath GetAssetPathForData(const FAssetData& AssetData) const;
708
710 ENGINE_API virtual FPrimaryAssetId GetRedirectedPrimaryAssetId(const FPrimaryAssetId& OldId) const;
711
713 ENGINE_API virtual void GetPreviousPrimaryAssetIds(const FPrimaryAssetId& NewId, TArray<FPrimaryAssetId>& OutOldIds) const;
714
716 ENGINE_API virtual FPrimaryAssetId DeterminePrimaryAssetIdForObject(const UObject* Object) const;
717
719 ENGINE_API virtual FSoftObjectPath GetRedirectedAssetPath(const FSoftObjectPath& OldPath) const;
720
722 ENGINE_API virtual void ExtractSoftObjectPaths(const UStruct* Struct, const void* StructValue, TArray<FSoftObjectPath>& FoundAssetReferences, const TArray<FName>& PropertiesToSkip = TArray<FName>()) const;
723
725 ENGINE_API virtual int32 SearchAssetRegistryPaths(TArray<FAssetData>& OutAssetDataList, const FAssetManagerSearchRules& Rules) const;
726
728 ENGINE_API virtual bool DoesAssetMatchSearchRules(const FAssetData& AssetData, const FAssetManagerSearchRules& Rules) const;
729
731 ENGINE_API virtual bool ShouldScanPrimaryAssetType(FPrimaryAssetTypeInfo& TypeInfo) const;
732
734 ENGINE_API virtual bool RegisterSpecificPrimaryAsset(const FPrimaryAssetId& PrimaryAssetId, const FAssetData& NewAssetData);
735
737 ENGINE_API virtual void ScanPathsSynchronous(const TArray<FString>& PathsToScan) const;
738
745 ENGINE_API virtual bool OnAssetRegistryAvailableAfterInitialization(FName InName, FAssetRegistryState& OutNewState);
746
748 static ENGINE_API bool GetContentRootPathFromPackageName(const FString& PackageName, FString& OutContentRootPath);
749
751 static ENGINE_API void NormalizePackagePath(FString& InOutPath, bool bIncludeFinalSlash);
752 static ENGINE_API FString GetNormalizedPackagePath(const FString& InPath, bool bIncludeFinalSlash);
753
755 static ENGINE_API void DumpAssetTypeSummary();
756
758 static ENGINE_API void DumpLoadedAssetState();
759
761 static ENGINE_API void DumpBundlesForAsset(const TArray<FString>& Args);
762
764 static ENGINE_API void DumpAssetRegistryInfo();
765
767 static ENGINE_API void DumpReferencersForPackage(const TArray< FString >& PackageNames);
768
770 static ENGINE_API void GetAllReferencersForPackage(TSet<FAssetData>& OutFoundAssets, const TArray<FName>& InPackageNames, int32 MaxDepth);
771
773 ENGINE_API virtual void StartInitialLoading();
774
776 ENGINE_API virtual void FinishInitialLoading();
777
779 ENGINE_API IAssetRegistry& GetAssetRegistry() const;
780
782 ENGINE_API const UAssetManagerSettings& GetSettings() const;
783
785 ENGINE_API FTimerManager* GetTimerManager() const;
786
787 // Overrides
788 ENGINE_API virtual void BeginDestroy() override;
789
790 ENGINE_API virtual void PostInitProperties() override;
791
793 ENGINE_API virtual void GetCachedPrimaryAssetEncryptionKeyGuid(FPrimaryAssetId InPrimaryAssetId, FGuid& OutGuid);
794
796 ENGINE_API virtual void LoadRedirectorMaps();
797
799 ENGINE_API virtual void RefreshPrimaryAssetDirectory(bool bForceRefresh = false);
800
802 ENGINE_API virtual void InvalidatePrimaryAssetDirectory();
803
805 ENGINE_API virtual void WarnAboutInvalidPrimaryAsset(const FPrimaryAssetId& PrimaryAssetId, const FString& Message) const;
806
808 ENGINE_API virtual bool WriteCustomReport(FString FileName, TArray<FString>& FileLines) const;
809
811 ENGINE_API virtual void ApplyCustomPrimaryAssetRulesOverride(const FPrimaryAssetRulesCustomOverride& CustomOverride);
812
813#if WITH_EDITOR
814 // EDITOR ONLY FUNCTIONALITY
815
819
821 ENGINE_API virtual void ModifyDLCCook(const FString& DLCName, TConstArrayView<const ITargetPlatform*> TargetPlatforms,
823
830
837
839 ENGINE_API virtual bool ShouldCookForPlatform(const UPackage* Package, const ITargetPlatform* TargetPlatform);
840
842 ENGINE_API virtual EPrimaryAssetCookRule GetPackageCookRule(FName PackageName) const;
843
852
854 ENGINE_API virtual bool VerifyCanCookPackage(UE::Cook::ICookInfo* CookInfo, FName PackageName, bool bLogError = true) const;
855
865
872 virtual FGuid GetChunkEncryptionKeyGuid(int32 InChunkId) const { return FGuid(); }
873
876
883
888
894
896 ENGINE_API virtual void ReinitializeFromConfig();
897
899 UE_DEPRECATED(5.6, "UpdateManagementDatabase as been updated to take InFlags instead.")
900 ENGINE_API virtual void UpdateManagementDatabase(bool bForceRefresh);
902
905
913
916
918 ENGINE_API virtual void RefreshAssetData(UObject* ChangedObject);
919
932 ENGINE_API virtual void InitializeAssetBundlesFromMetadata(const UStruct* Struct, const void* StructValue, FAssetBundleData& AssetBundle, FName DebugName = NAME_None) const;
933
936 {
938 }
939
943 virtual void PreSaveAssetRegistry(const ITargetPlatform* TargetPlatform, const TSet<FName>& InCookedPackages) {}
944
948 virtual void PostSaveAssetRegistry() {}
949
954
961 virtual bool HandleCookCommand(FStringView Token)
962 {
963 return false;
964 }
965#endif
966
981 virtual void GetPakChunkIdToStringMapping(const FString& PlatformName, TMap<int32, FString>& ChunkIdStringOverride) {}
982
989 ENGINE_API void GetPakStringToChunkIdMapping(TMap<FString, int32>& StringOverrideToChunkId);
990
991protected:
993
995 ENGINE_API virtual void GetAssetDataForPathInternal(IAssetRegistry& AssetRegistry, const FString& AssetPath, OUT FAssetData& OutAssetData) const;
996
998 ENGINE_API virtual bool TryUpdateCachedAssetData(const FPrimaryAssetId& PrimaryAssetId, const FAssetData& NewAssetData, bool bAllowDuplicates);
999
1001 ENGINE_API FPrimaryAssetData* GetNameData(const FPrimaryAssetId& PrimaryAssetId, bool bCheckRedirector = true);
1002 ENGINE_API const FPrimaryAssetData* GetNameData(const FPrimaryAssetId& PrimaryAssetId, bool bCheckRedirector = true) const;
1003
1004 ENGINE_API virtual void OnObjectReferenceListInvalidated();
1005
1006 ENGINE_API void CallPreGarbageCollect();
1007 ENGINE_API virtual void PreGarbageCollect();
1008
1010 UE_DEPRECATED(5.6, "Use NotifyOnAssetStateChangeCompleted instead")
1011 virtual void OnAssetStateChangeCompleted(FPrimaryAssetId PrimaryAssetId, TSharedPtr<FStreamableHandle> BoundHandle, FStreamableDelegate WrappedDelegate) { checkf(false, TEXT("Deprecated")); }
1012
1014 virtual void NotifyOnAssetStateChangeCompleted(const FPrimaryAssetId& PrimaryAssetId) {}
1015
1017 ENGINE_API void OnAssetStateChangeCompleted(TSharedPtr<FStreamableHandle> BoundHandle, FPrimaryAssetId PrimaryAssetId);
1018
1020 ENGINE_API virtual void ScanPrimaryAssetTypesFromConfig();
1021
1023 ENGINE_API virtual void ScanPrimaryAssetRulesFromConfig();
1024
1026 ENGINE_API virtual bool DoesPrimaryAssetMatchCustomOverride(FPrimaryAssetId PrimaryAssetId, const FPrimaryAssetRulesCustomOverride& CustomOverride) const;
1027
1029 ENGINE_API virtual void PostInitialAssetScan();
1030
1032 ENGINE_API virtual bool IsPathExcludedFromScan(const FString& Path) const;
1033
1035 ENGINE_API bool IsScanningFromInitialConfig() const;
1036
1038 ENGINE_API virtual bool ShouldIncludeInAssetSearch(const FAssetData& AssetData, const FAssetManagerSearchRules& SearchRules) const;
1039
1042
1044 ENGINE_API virtual void OnChunkDownloaded(uint32 ChunkId, bool bSuccess);
1045
1047 UE_DEPRECATED(5.6, "Function was renamed to LoadAssetList that accepts FAssetManagerLoadParams struct.")
1049 {
1050 checkf(false, TEXT("Deprecated"));
1051 return nullptr;
1052 }
1053
1054#if WITH_EDITOR
1057 UE_DEPRECATED(5.6, "Override the version that takes an FShouldSetManagerContext instead.")
1058 virtual EAssetSetManagerResult::Type ShouldSetManager(const FAssetIdentifier& Manager, const FAssetIdentifier& Source, const FAssetIdentifier& Target,
1059 UE::AssetRegistry::EDependencyCategory Category, UE::AssetRegistry::EDependencyProperty Properties, EAssetSetManagerFlags::Type Flags) const
1060 {
1062 }
1063
1066
1068 ENGINE_API virtual void OnInMemoryAssetCreated(UObject *Object);
1069
1071 ENGINE_API virtual void OnInMemoryAssetDeleted(UObject *Object);
1072
1075
1077 ENGINE_API virtual void OnAssetRenamed(const FAssetData& NewData, const FString& OldPath);
1078
1080 ENGINE_API virtual void OnAssetRemoved(const FAssetData& Data);
1081
1083 ENGINE_API virtual void RemovePrimaryAssetId(const FPrimaryAssetId& PrimaryAssetId);
1084
1087
1090
1092 ENGINE_API virtual void PreBeginPIE(bool bStartSimulate);
1093
1095 ENGINE_API virtual void EndPIE(bool bStartSimulate);
1096
1104 UE_DEPRECATED(5.6, "BuildChunkMap now takes 2 additional arguments")
1106
1117
1120
1123#endif // WITH_EDITOR
1124
1127
1130
1135
1138
1141
1144
1147
1150
1153
1169
1172
1175
1177 UPROPERTY()
1178 TArray<TObjectPtr<UObject>> ObjectReferenceList;
1179
1181 UPROPERTY()
1182 bool bIsGlobalAsyncScanEnvironment;
1183
1185 UPROPERTY()
1186 bool bShouldGuessTypeAndName;
1187
1189 UPROPERTY()
1190 bool bShouldUseSynchronousLoad;
1191
1193 UPROPERTY()
1194 bool bIsLoadingFromPakFiles;
1195
1197 UPROPERTY()
1198 bool bShouldAcquireMissingChunksOnLoad;
1199
1201 UPROPERTY()
1202 bool bOnlyCookProductionAssets;
1203
1205 bool bTargetPlatformsAllowDevelopmentObjects;
1206
1207 bool bObjectReferenceListDirty = true;
1208
1210 UPROPERTY()
1211 int32 NumBulkScanRequests;
1212
1214 UPROPERTY()
1215 bool bIsPrimaryAssetDirectoryCurrent;
1216
1218 UPROPERTY()
1219 bool bIsManagementDatabaseCurrent;
1220
1222 UPROPERTY()
1223 bool bUpdateManagementDatabaseAfterScan;
1224
1226 UPROPERTY()
1227 bool bIncludeOnlyOnDiskAssets;
1228
1230 UPROPERTY()
1231 bool bHasCompletedInitialScan;
1232
1234 UPROPERTY()
1235 int32 NumberOfSpawnedNotifications;
1236
1238 TMap<FName, FName> PrimaryAssetTypeRedirects;
1239 TMap<FString, FString> PrimaryAssetIdRedirects;
1241
1243 static ENGINE_API FSimpleMulticastDelegate OnCompletedInitialScanDelegate;
1244
1246 static ENGINE_API FSimpleMulticastDelegate OnAssetManagerCreatedDelegate;
1247
1249 FOnAddedAssetSearchRoot OnAddedAssetSearchRootDelegate;
1250
1252 FDelegateHandle ChunkInstallDelegateHandle;
1253
1254private:
1256 bool bOldTemporaryCachingMode = false;
1257
1259 bool bScanningFromInitialConfig = false;
1260
1261 void InternalAddAssetScanPath(FPrimaryAssetTypeData& TypeData, const FString& AssetScanPath);
1262
1263#if WITH_EDITOR
1266#endif
1267
1270
1271#if WITH_EDITOR
1277#endif
1278
1279 mutable IAssetRegistry* CachedAssetRegistry;
1280 mutable const UAssetManagerSettings* CachedSettings;
1281
1283};
1284
1293
1302
1311
1320
1329
1338
1352
1366
1375
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
EPrimaryAssetCookRule
Definition AssetManagerTypes.h:29
EAssetManagerFilter
Definition AssetManagerTypes.h:279
EUpdateManagementDatabaseFlags
Definition AssetManager.h:71
bool bSuccess
Definition ConvexDecomposition3.cpp:819
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_INTERNAL
Definition CoreMiscDefines.h:345
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define OUT
Definition Platform.h:897
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:57
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
return true
Definition ExternalRpcRegistry.cpp:601
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
int16 FStreamableDownloadPriority
Definition StreamableManager.h:37
TDelegate< void()> FStreamableDelegate
Definition StreamableManager.h:32
int32 TAsyncLoadPriority
Definition UObjectGlobals.h:726
UE_REWRITE T CopyTemp(T &Val)
Definition UnrealTemplate.h:554
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 AssetRegistry.Build.cs:6
Definition AssetRegistryState.h:158
Definition ContentEncryptionConfig.h:11
Definition IDelegateInstance.h:14
Definition NameTypes.h:617
Definition ObjectSaveContext.h:244
Definition TimerManager.h:133
Definition IAssetRegistry.h:263
Definition ArrayView.h:139
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SubclassOf.h:30
Definition AssetManagerSettings.h:68
Definition AssetManager.h:84
virtual void GetPakChunkIdToStringMapping(TMap< int32, FString > &ChunkIdStringOverride)
Definition AssetManager.h:980
virtual TSharedPtr< FStreamableHandle > ChangeBundleStateForMatchingPrimaryAssets(const TArray< FName > &NewBundles, const TArray< FName > &OldBundles, FStreamableDelegate DelegateToCall=FStreamableDelegate(), TAsyncLoadPriority Priority=FStreamableManager::DefaultAsyncLoadPriority, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition AssetManager.h:1321
static ENGINE_API const FString DynamicSearchRootsVirtualPath
Definition AssetManager.h:126
TSet< FPrimaryAssetId > WarningInvalidAssets
Definition AssetManager.h:1140
TMap< FPrimaryAssetId, TArray< FPrimaryAssetId > > ManagementParentMap
Definition AssetManager.h:1132
TSharedPtr< FStreamableHandle > LoadAssetList(const TArray< FSoftObjectPath > &AssetList, FStreamableDelegate DelegateToCall=FStreamableDelegate(), TAsyncLoadPriority Priority=FStreamableManager::DefaultAsyncLoadPriority, FString &&DebugName=FString(TEXT("LoadAssetList")), UE::FSourceLocation &&Location=UE::FSourceLocation::Current())
Definition AssetManager.h:1339
TArray< FString > AllAssetSearchRoots
Definition AssetManager.h:1146
static ENGINE_API const FString AssetSearchRootsVirtualPath
Definition AssetManager.h:123
TSharedPtr< FStreamableHandle > DownloadAssetList(const TArray< FSoftObjectPath > &AssetList, FAssetManagerLoadParams &&LoadParams, FString &&DebugName=FString(TEXT("DownloadAssetList")), UE::FSourceLocation &&Location=UE::FSourceLocation::Current())
Definition AssetManager.h:1376
virtual TSharedPtr< FStreamableHandle > PreloadPrimaryAssets(const TArray< FPrimaryAssetId > &AssetsToLoad, const TArray< FName > &LoadBundles, bool bLoadRecursive, FStreamableDelegate DelegateToCall=FStreamableDelegate(), TAsyncLoadPriority Priority=FStreamableManager::DefaultAsyncLoadPriority, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition AssetManager.h:1330
friend FAssetManagerEditorModule
Definition AssetManager.h:992
FStreamableManager StreamableManager
Definition AssetManager.h:1152
virtual TSharedPtr< FStreamableHandle > LoadPrimaryAsset(const FPrimaryAssetId &AssetToLoad, const TArray< FName > &LoadBundles=TArray< FName >(), FStreamableDelegate DelegateToCall=FStreamableDelegate(), TAsyncLoadPriority Priority=FStreamableManager::DefaultAsyncLoadPriority, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition AssetManager.h:1294
TMap< FSoftObjectPath, FPrimaryAssetId > AssetPathMap
Definition AssetManager.h:1126
static FStreamableManager & GetStreamableManager()
Definition AssetManager.h:105
static ENGINE_API const FPrimaryAssetType MapType
Definition AssetManager.h:108
static ENGINE_API const FPrimaryAssetType SuppressionType
Definition AssetManager.h:120
TMap< FPrimaryAssetId, FPrimaryAssetRulesExplicitOverride > AssetRuleOverrides
Definition AssetManager.h:1129
bool IsBulkScanning() const
Definition AssetManager.h:169
TArray< FString > AlreadyScannedDirectories
Definition AssetManager.h:1143
TMap< FPrimaryAssetId, TSharedPtr< FAssetBundleData, ESPMode::ThreadSafe > > CachedAssetBundles
Definition AssetManager.h:1137
virtual void GetPakChunkIdToStringMapping(const FString &PlatformName, TMap< int32, FString > &ChunkIdStringOverride)
Definition AssetManager.h:981
TArray< FPendingChunkInstall > PendingChunkInstalls
Definition AssetManager.h:1171
virtual TSharedPtr< FStreamableHandle > LoadPrimaryAssets(const TArray< FPrimaryAssetId > &AssetsToLoad, const TArray< FName > &LoadBundles=TArray< FName >(), FStreamableDelegate DelegateToCall=FStreamableDelegate(), TAsyncLoadPriority Priority=FStreamableManager::DefaultAsyncLoadPriority, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition AssetManager.h:1285
virtual TSharedPtr< FStreamableHandle > LoadPrimaryAssetsWithType(FPrimaryAssetType PrimaryAssetType, const TArray< FName > &LoadBundles=TArray< FName >(), FStreamableDelegate DelegateToCall=FStreamableDelegate(), TAsyncLoadPriority Priority=FStreamableManager::DefaultAsyncLoadPriority, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition AssetManager.h:1303
TSubclassOf< AssetType > GetPrimaryAssetObjectClass(const FPrimaryAssetId &PrimaryAssetId) const
Definition AssetManager.h:230
virtual void NotifyOnAssetStateChangeCompleted(const FPrimaryAssetId &PrimaryAssetId)
Definition AssetManager.h:1014
TMap< FPrimaryAssetId, FGuid > PrimaryAssetEncryptionKeyCache
Definition AssetManager.h:1174
static ENGINE_API const FPrimaryAssetType PrimaryAssetLabelType
Definition AssetManager.h:111
TArray< FString > AddedAssetSearchRoots
Definition AssetManager.h:1149
virtual TSharedPtr< FStreamableHandle > ChangeBundleStateForPrimaryAssets(const TArray< FPrimaryAssetId > &AssetsToChange, const TArray< FName > &AddBundles, const TArray< FName > &RemoveBundles, bool bRemoveAllBundles=false, FStreamableDelegate DelegateToCall=FStreamableDelegate(), TAsyncLoadPriority Priority=FStreamableManager::DefaultAsyncLoadPriority, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition AssetManager.h:1312
TMap< FPrimaryAssetId, TArray< FPrimaryAssetId > > CookRuleManagementParentMap
Definition AssetManager.h:1134
AssetType * GetPrimaryAssetObject(const FPrimaryAssetId &PrimaryAssetId) const
Definition AssetManager.h:223
static ENGINE_API const FPrimaryAssetType PackageChunkType
Definition AssetManager.h:114
Definition Class.h:3793
Definition SourceLocation.h:21
static UE_CONSTEVAL FSourceLocation Current(FSourceLocationImpl Impl=FSourceLocationImpl::current()) noexcept
Definition SourceLocation.h:107
Definition Object.h:95
Definition Package.h:216
Definition Class.h:480
Definition AssetRegistryInterface.h:441
Definition AssetRegistryInterface.h:431
Type
Definition AssetRegistryInterface.h:433
@ DoNotSet
Definition AssetRegistryInterface.h:434
Type
Definition GenericPlatformChunkInstall.h:57
@ Immediate
Definition GenericPlatformChunkInstall.h:58
Definition PackageReader.h:15
Definition CookOnTheFly.h:19
FStreamableDelegateWithHandle WrapDelegate(const FStreamableDelegate &InDelegate)
Definition StreamableManager.h:52
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition AssetBundleData.h:82
Definition AssetBundleData.h:24
Definition AssetData.h:162
Definition AssetIdentifier.h:12
Definition AssetManagerTypes.h:269
Definition AssetManager.h:47
bool bInstallSoftReferences
Definition AssetManager.h:51
bool operator==(const FAssetManagerDownloadParams &Right) const =default
FStreamableDownloadPriority Priority
Definition AssetManager.h:49
Definition AssetManager.h:57
TOptional< FAssetManagerDownloadParams > DownloadParams
Definition AssetManager.h:67
FStreamableDelegateWithHandle OnComplete
Definition AssetManager.h:59
FStreamableUpdateDelegate OnUpdate
Definition AssetManager.h:63
FStreamableDelegateWithHandle OnCancel
Definition AssetManager.h:61
TAsyncLoadPriority Priority
Definition AssetManager.h:65
Definition AssetManagerTypes.h:295
Definition AssetManager.cpp:522
Definition Guid.h:109
Definition AssetManager.cpp:384
Definition PrimaryAssetId.h:126
Definition AssetManagerSettings.h:45
Definition AssetManagerTypes.h:111
Definition AssetManagerTypes.h:67
Definition AssetManager.cpp:411
Definition AssetManagerTypes.h:132
Definition PrimaryAssetId.h:28
Definition SoftObjectPath.h:56
Definition StreamableManager.h:191
Definition StreamableManager.h:706
static constexpr TAsyncLoadPriority DefaultAsyncLoadPriority
Definition StreamableManager.h:708
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition Tuple.h:652
Definition AssetManager.h:1156
TArray< int32 > RequestedChunks
Definition AssetManager.h:1158
TArray< int32 > PendingChunks
Definition AssetManager.h:1161
TSharedPtr< FStreamableHandle > StalledStreamableHandle
Definition AssetManager.h:1164
FAssetManagerAcquireResourceDelegate ManualCallback
Definition AssetManager.h:1167
Definition IAssetRegistry.h:83