diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Entity/PrefabEditorEntityOwnershipService.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Entity/PrefabEditorEntityOwnershipService.cpp index dfcbfd8c45..2d97689610 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Entity/PrefabEditorEntityOwnershipService.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Entity/PrefabEditorEntityOwnershipService.cpp @@ -88,13 +88,15 @@ namespace AzToolsFramework { if (m_rootInstance) { + AzToolsFramework::ToolsApplicationRequestBus::Broadcast( + &AzToolsFramework::ToolsApplicationRequestBus::Events::ClearDirtyEntities); Prefab::TemplateId templateId = m_rootInstance->GetTemplateId(); + m_rootInstance->Reset(); if (templateId != Prefab::InvalidTemplateId) { m_rootInstance->SetTemplateId(Prefab::InvalidTemplateId); m_prefabSystemComponent->RemoveTemplate(templateId); } - m_rootInstance->Reset(); m_rootInstance->SetContainerEntityName("Level"); } diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Instance/Instance.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Instance/Instance.cpp index 750efa1e36..043f864245 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Instance/Instance.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Instance/Instance.cpp @@ -82,16 +82,7 @@ namespace AzToolsFramework return; } - // If this instance's templateId is valid, we should be able to unregister this instance from - // Template to Instance mapping successfully. - if (m_templateId != InvalidTemplateId && - !m_templateInstanceMapper->UnregisterInstance(*this)) - { - AZ_Assert(false, - "Prefab - Attempted to Unregister Instance from Template with Id '%u'. " - "Instance may never have been registered or was unregistered early.", - m_templateId); - } + m_templateInstanceMapper->UnregisterInstance(*this); m_templateId = templateId; @@ -221,15 +212,7 @@ namespace AzToolsFramework void Instance::Reset() { - // Clean up Instance associations. - if (m_templateId != InvalidTemplateId && !m_templateInstanceMapper->UnregisterInstance(*this)) - { - AZ_Assert( - false, - "Prefab - Attempted to unregister Instance from Template on file path '%s' with Id '%u'. " - "Instance may never have been registered or was unregistered early.", - m_templateSourcePath.c_str(), m_templateId); - } + m_templateInstanceMapper->UnregisterInstance(*this); ClearEntities();