diff --git a/Gems/Blast/Code/Source/Components/BlastFamilyComponent.cpp b/Gems/Blast/Code/Source/Components/BlastFamilyComponent.cpp index 1da9663b8f..bf1f3bc5af 100644 --- a/Gems/Blast/Code/Source/Components/BlastFamilyComponent.cpp +++ b/Gems/Blast/Code/Source/Components/BlastFamilyComponent.cpp @@ -286,9 +286,13 @@ namespace Blast // Create damage and actor render managers m_damageManager = AZStd::make_unique(blastMaterial, m_family->GetActorTracker()); - m_actorRenderManager = AZStd::make_unique( - AZ::RPI::Scene::GetFeatureProcessorForEntity(GetEntityId()), - m_meshDataComponent, GetEntityId(), m_blastAsset->GetPxAsset()->getChunkCount(), AZ::Vector3(transform.GetUniformScale())); + + if (m_meshDataComponent) + { + m_actorRenderManager = AZStd::make_unique( + AZ::RPI::Scene::GetFeatureProcessorForEntity(GetEntityId()), + m_meshDataComponent, GetEntityId(), m_blastAsset->GetPxAsset()->getChunkCount(), AZ::Vector3(transform.GetUniformScale())); + } // Spawn the family m_family->Spawn(transform); @@ -540,7 +544,11 @@ namespace Blast void BlastFamilyComponent::OnActorCreated([[maybe_unused]] const BlastFamily& family, const BlastActor& actor) { - m_actorRenderManager->OnActorCreated(actor); + if (m_actorRenderManager) + { + m_actorRenderManager->OnActorCreated(actor); + } + m_solver->notifyActorCreated(*actor.GetTkActor().getActorLL()); if (auto* physicsSystem = AZ::Interface::Get()) @@ -576,7 +584,11 @@ namespace Blast } m_solver->notifyActorDestroyed(*actor.GetTkActor().getActorLL()); - m_actorRenderManager->OnActorDestroyed(actor); + + if (m_actorRenderManager) + { + m_actorRenderManager->OnActorDestroyed(actor); + } } // Update positions of entities with render meshes corresponding to their right dynamic bodies.