Fixed Gadgets not Despawning After Being Switched Out

This commit is contained in:
Rafal Swierczek 2023-11-03 13:22:30 +00:00
parent 971e28bb61
commit e78cc47989

View File

@ -39,8 +39,16 @@ void AGadgetManager::SpawnGadget(TSubclassOf<AGadgetBase> GadgetClass, USceneCom
AActor* SpawnedActor = GetWorld()->SpawnActor<AActor>(GadgetClass, GetActorLocation(), GetActorRotation(), SpawnParams); AActor* SpawnedActor = GetWorld()->SpawnActor<AActor>(GadgetClass, GetActorLocation(), GetActorRotation(), SpawnParams);
if (SpawnedActor->IsA(AReconGadget::StaticClass())) ReconGadget = Cast<AReconGadget>(SpawnedActor); if (SpawnedActor->IsA(AReconGadget::StaticClass()))
else if (SpawnedActor->IsA(ACombatGadget::StaticClass())) CombatGadget = Cast<ACombatGadget>(SpawnedActor); {
if (IsValid(ReconGadget)) ReconGadget->Destroy();
ReconGadget = Cast<AReconGadget>(SpawnedActor);
}
else if (SpawnedActor->IsA(ACombatGadget::StaticClass()))
{
if (IsValid(CombatGadget)) CombatGadget->Destroy();
CombatGadget = Cast<ACombatGadget>(SpawnedActor);
}
else UE_LOG(LogTemp, Fatal, TEXT("Passed sub class of gadget base is neither a combat or recon gadget, check the gadget class you're passing through or contact Rafal")); else UE_LOG(LogTemp, Fatal, TEXT("Passed sub class of gadget base is neither a combat or recon gadget, check the gadget class you're passing through or contact Rafal"));
AGadgetBase* BaseGadget = Cast<AGadgetBase>(SpawnedActor); AGadgetBase* BaseGadget = Cast<AGadgetBase>(SpawnedActor);