diff --git a/Source/SentryTower/Player/SentryTowerTurret.cpp b/Source/SentryTower/Player/SentryTowerTurret.cpp index e243d73..d952b89 100644 --- a/Source/SentryTower/Player/SentryTowerTurret.cpp +++ b/Source/SentryTower/Player/SentryTowerTurret.cpp @@ -61,7 +61,12 @@ void ASentryTowerTurret::Shoot(AActor* TargetActor, const FVector& TargetLocatio return; } - LastShotTime = CurrentTime; + if (!ProjectileType) + { + UE_LOG(LogTemp, Warning, TEXT("ASentryTowerTurret::Shoot called without a ProjectileType set. Shot skipped.")); + LastShotTime = CurrentTime; + return; + } FVector SpawnLocation = ProjectileSocket->GetComponentLocation(); FRotator SpawnRotation = TurretWeapon->GetComponentRotation(); @@ -69,6 +74,15 @@ void ASentryTowerTurret::Shoot(AActor* TargetActor, const FVector& TargetLocatio auto Projectile = Cast(GetWorld()->SpawnActor(ProjectileType, &SpawnLocation, &SpawnRotation)); + if (!Projectile) + { + UE_LOG(LogTemp, Error, TEXT("ASentryTowerTurret failed to spawn projectile of type %s."), *GetNameSafe(*ProjectileType)); + LastShotTime = CurrentTime; + return; + } + + LastShotTime = CurrentTime; + Projectile->TargetToFollow = TargetActor; Projectile->TargetStationary = TargetLocation;