์ด๊ฑด ์๋ ์ ๋ง๋ค์ด๋ ๋ธ๋ฃจํ๋ฆฐํธ๋ง์ผ๋ก ์ ์ํ๊ฑด๋ฐ
ํค๋ฅผ ์ ๋ ฅํ๋ฉด ์บ๋ฆญํฐ ๋ฉ์ฌ์ ๋ถ์ด์๋ ์์ผ์ ์์น๋ฅผ ์์์ ,๋์ ์ผ๋ก ๋ฌ์ Radius ์ค์ ํด์ ํธ๋ ์ด์ค ๋ง๋ค๊ณ HitResult๋ฅผ for๋ฌธ์ผ๋ก ๋๋ ค์ Enemyํ๊ทธ ๋ถ์๊ฒ๋ง ๋ฐ๋ฏธ์ง ์ ํ๋ ์์ผ๋ก ๋ง๋ค์์๊ฑฐ๋ ์
์ด์ ์ง๊ธ์ ์ด๊ฑธ C++๋ก ๊ตฌํํ๋ ค๊ณ ํ๋๋ฐ ๊ตฌ๊ธ๋ง์ ํตํด์ย GetMesh()->GetSocketLocation(TEXT("headSocket"));ย
์ ๊ฑธ๋ก ์์ผ์ ๊ฐ์ ธ์ฌ ์ ์๋ค๋๊ฑด ์์์.ย
bool isHit = UKismetSystemLibrary::SphereTraceMultiByProfile(GetWorld(), StartLoc, TargetLoc, 100.f, TEXT("BlockAll"), false, IngoreActors, EDrawDebugTrace::Type::None, HitRetArray, true);
if (isHit)
{
for (FHitResult Hit : HitRetArray)
{
if (AActor* Actor = Hit.Actor.Get())
{
if (Actor)
{
//other code ...
}
}
}
}
์ด๋ ๊ฒ ๊ธ์ด์์ ์ผ๋จ ์ฃ์กํ๋ฐ ์ด๊ฒ๋ ๊ตฌ๊ธ์์ SphereTrace c++ ๊ฒ์ํด์ ๋์จ๊ฑฐ๊ฑฐ๋ ์.
๊ทธ๋ฌ๋ฉด ์ด์ ์์์ ์จ๋์ ์ GetSocketLocation์ ๋ด์๋์ ์คํํธ,์๋ ์ง์ ์ ๋งค๊ฐ๋ณ์์ ๋ฃ๊ณ if (Actor) ์์ ํ๊ทธ๊ฒ์ฌํด์ ๋ฐ๋ฏธ์ง ์ฒ๋ฆฌํ๋ฉด ๋๋๊ฑด๊ฐ์?
๊ทธ๋ฆฌ๊ณ ์์๋ณด๋๊น ๋ค๋ค ์ปดํฌ๋ํธ๋ก ์์,๋ ์ง์ ์ ๋ด์๋๋๋ฐ ์์ผ์ผ๋ก ํด๋ ๋๋์..?ย
์ ๊ฐ ์ดํดํ ๋ฐฉ์์ด ๋ง๋์ง๋ถํฐ ํ์คํ๊ฒ ์ดํดํ๊ณ ์์ํ๊ณ ์ถ์ด์ ๋ฌผ์ด๋ณธ๊ฒ๋๋ค!
ใ - dc App
๊ทธ๋ฆฌ๊ณ ์ฌ์ปดํฌ๋ํธ๋ก ์คํ์ ์ ์กฐ์ ํ๋ ๊ฒ๊ณผ ์์ผ์ผ๋ก ์กฐ์ ํ๋ ๊ฒ์ ์ฐจ์ด๋ ์์ผ์ ๋ฉ์์ ๋ถ์ด์ ์์ง์ด๊ณ ์ฌ์ปดํฌ๋ํธ๋ ๋ฉ์์ ํผ๋ฒ์ ๋ถ์ด์ ์์ง์ธ๋ค๋ ์ ์ ๊ณ ๋ คํด์ ๋ ์๋ง์ ๊ฒ์ ์ ํํ์์ค ๋ ๋ฐฉ๋ฒ ๋ค ์ผ์ฅ์ผ๋จ์ด ์์ - dc App
๊ฐ์ฌํฉ๋๋ค! ์ผ๋จ BP๋ก ๊ตฌํํ์์๋ ์ํ๋๋๋ก ๊ฒฐ๊ณผ๊ฐ ๋์์์ผ๋ ์์ผ์ ์์น๋ฅผ ์์,๋์ผ๋ก ์ค์ ํด๋ณด๊ฒ ์ต๋๋ค.