Tayk
(Tayk)
1
Basically i want to add a particle system to my projectile when i hit something that is not from the ACharacter class.
my code looks like this
if (OtherActor->GetClass()->IsChildOf(AFPSCharacter::StaticClass()))
but thats not working.
Can anyone point me to a solution for checking if HitActor != ACharacter
Hey,
Have you tried these two solutions:
if(!OtherActor->IsA< AFPSCharacter >())
{
// The other Actor is not of type AFPSCharacter
}
or
if(!Cast< AFPSCharacter >(OtherActor)
{
// Other Actor is not AFPSCharacter.
}
I have used the first one in my code before:
TArray<FHitResult> HitResults;
GetWorld()->LineTraceMultiByChannel(HitResults, TraceStart, TraceEnd, ECC_GameTraceChannel14, TraceWeaponParams);
for (auto& HitResult : HitResults)
{
if (HitResult.Actor->IsA<AHeroCharacter>())
{
UGameplayStatics::ApplyDamage(HitResult.Actor.Get(), MeleeDamage, this->GetController(), this, MeleeDamageType);
}
}
Hope this helps.
Tayk
(Tayk)
3
Hey, thank you!
the second solution worked for me