bool isHit = UKismetSystemLibrary::SphereTraceMultiByProfile(GetWorld(), StartLoc, TargetLoc, 200.0f, TEXT("BlockAll"), false, IngoreActors, EDrawDebugTrace::Type::None, HitRetArray, true);

if (isHit)

{

for (FHitResult Hit : HitRetArray)

{

if (AActor* Actor = Hit.Actor.Get())

{

if (Actor->ActorHasTag("Enemy")) {

float Dmg;

Dmg = CharacterStat->GetAttack();ย 


UGameplayStatics::ApplyDamage(Actor, Dmg, nullptr, this, NULL);

UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), HitEffect, Actor->GetActorLocation(), FRotator(0.0f, 0.0f, 0.0f), FVector(2.0f, 2.0f, 2.0f));

}

}

}

}



์ด๋ ‡๊ฒŒ ํŠธ๋ ˆ์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ฐ๋ฏธ์ง€๋ฅผ ์ž…ํžˆ๋Š” ์‹์ธ๋ฐ


์ € ํ•œ๋ฒˆ ํŠธ๋ ˆ์ด์Šค ๋งŒ๋“ค์–ด์„œ ๋ฐ๋ฏธ์ง€๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ์ฃผ๋Š”๊ฑด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”? ๊ทธ๋ƒฅ ๋‹จ์ˆœํžˆย ApplyDamage๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ์“ฐ๋ฉด ํ•œ๋ฒˆ์— ๋ฐ๋ฏธ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ  ์ œ๊ฐ€ ์›ํ•˜๋Š”๊ฑด ๋‹ค๋‹จํžˆํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์–ด์š”. ํƒ€์ด๋จธ ์ด์šฉํ•ด์„œย 


FTimerHandle myTimerHandle;

GetWorld()->GetTimerManager().SetTimer(myTimerHandle, FTimerDelegate::CreateLambda([&]()

{

UGameplayStatics::ApplyDamage(Actor, Dmg, nullptr, this, NULL);

}), 1.0f, false);

์ด๊ฑธ ๋„ฃ์–ด๋ดค๋Š”๋ฐ ํฌ๋ž˜์‹œ๋‚˜๋”๋ผ๊ตฌ์š”