As soon as I apply damage my game crash. Not when the damage interface isn’t implemented.
Interface:
virtual float TakeDamage(float DamageAmount, AController* InstigatedBy, AActor* DamageCauser) = 0;
Error:
UnrealEditor_FirstPersonShooter_0014!AWeaponBase::HandleFire() [D:\Unreal Engine Projects\FirstPersonShooter\Source\FirstPersonShooter\Actor\WeaponBase.cpp:88]
UnrealEditor_FirstPersonShooter_0014!AWeaponBase::StartFire() [D:\Unreal Engine Projects\FirstPersonShooter\Source\FirstPersonShooter\Actor\WeaponBase.cpp:36]
C++
DrawDebugLine(GetWorld(), Start, End, FColor::Red, false, 0.25f, 0, 1.0f);
bool bHit = GetWorld()->LineTraceSingleByChannel(Hit, Start, End, ECC_Pawn, Params);
if (bHit && HasAuthority())
{
AActor* HitActor = Hit.GetActor();
if (HitActor && HitActor->GetClass()->ImplementsInterface(UDamageable::StaticClass())) // Check for nullptr hit actor
{
GEngine->AddOnScreenDebugMessage(-1, 0.1f, FColor::Cyan, "Hit an actor");
IDamageable* DamageableActor = Cast<IDamageable>(HitActor);
if (DamageableActor)
{
DamageableActor->TakeDamage(WeaponStats.Damage, OwningCharacter->GetController(), this);
}
}
}