// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "ComponentAssetBroker.h" #include "NiagaraComponent.h" #include "NiagaraSystem.h" class FNiagaraComponentBroker : public IComponentAssetBroker { public: UClass* GetSupportedAssetClass() override { return UNiagaraSystem::StaticClass(); } virtual bool AssignAssetToComponent(UActorComponent* InComponent, UObject* InAsset) override { if (UNiagaraComponent* NiagaraComponent = Cast(InComponent)) { if (UNiagaraSystem* NiagaraSystem = Cast(InAsset)) { NiagaraComponent->SetAsset(NiagaraSystem); return true; } } return false; } virtual UObject* GetAssetFromComponent(UActorComponent* InComponent) override { if (UNiagaraComponent* NiagaraComponent = Cast(InComponent)) { return NiagaraComponent->GetFXSystemAsset(); } return nullptr; } };