Fixed a bug when saving an emitter over an existing asset

#jira UE-147504
#rb simon.tovey
#preflight 631b41e8a20b67673be5582c

[CL 21920066 by Michael Galetzka in ue5-main branch]
This commit is contained in:
Michael Galetzka
2022-09-09 10:06:14 -04:00
parent 009210905f
commit aeecc42c94

View File

@@ -2344,6 +2344,7 @@ void FNiagaraEditorUtilities::CreateAssetFromEmitter(TSharedRef<FNiagaraEmitterH
// First duplicate the asset so that fixes can be made on the duplicate without modifying the system and before it's saved.
UNiagaraEmitter* DuplicateEmitter = CastChecked<UNiagaraEmitter>(StaticDuplicateObject(EmitterToCopy, GetTransientPackage()));
DuplicateEmitter->AddToRoot(); // needed because the asset save dialog can call garbage collection
for (const FNiagaraAssetVersion& Version : DuplicateEmitter->GetAllAvailableVersions())
{
FNiagaraScratchPadUtilities::FixExternalScratchPadScriptsForEmitter(SystemViewModel->GetSystem(), FVersionedNiagaraEmitter(DuplicateEmitter, Version.VersionGuid));
@@ -2351,6 +2352,7 @@ void FNiagaraEditorUtilities::CreateAssetFromEmitter(TSharedRef<FNiagaraEmitterH
// Save the duplicated emitter.
UNiagaraEmitter* CreatedAsset = Cast<UNiagaraEmitter>(AssetToolsModule.Get().DuplicateAssetWithDialogAndTitle(EmitterName.GetPlainNameString(), PackagePath, DuplicateEmitter, LOCTEXT("CreateEmitterAssetDialogTitle", "Create Emitter As")));
DuplicateEmitter->RemoveFromRoot();
if (CreatedAsset != nullptr)
{
CreatedAsset->SetUniqueEmitterName(CreatedAsset->GetName());