Files
UnrealEngine/Engine/Source/Editor/Persona/Private/PersonaAssetFamilyManager.h
2025-05-18 13:04:45 +08:00

35 lines
877 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
class IAssetFamily;
class FPersonaAssetFamily;
struct FAssetData;
/** Central registry of persona asset families */
class FPersonaAssetFamilyManager
{
public:
/** Singleton access */
static FPersonaAssetFamilyManager& Get();
/** Create an asset family using the supplied asset */
TSharedRef<IAssetFamily> CreatePersonaAssetFamily(const UObject* InAsset);
/** All asset families have changed (e.g. universal compatibility) */
void BroadcastAssetFamilyChange();
/** Record an asset being opened - forward to all compatible asset families */
void RecordAssetOpened(const FAssetData& InAssetData) const;
private:
/** Hidden constructor */
FPersonaAssetFamilyManager() {}
private:
/** All current asset families */
TArray<TWeakPtr<FPersonaAssetFamily>> AssetFamilies;
};