a16711aa372a76b660b8f68b12d21a1dd685d731c984

์ด๊ฑด ์˜›๋‚ ์— ๋งŒ๋“ค์–ด๋‘” ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋งŒ์œผ๋กœ ์ œ์ž‘ํ•œ๊ฑด๋ฐ


ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์บ๋ฆญํ„ฐ ๋ฉ”์‰ฌ์— ๋ถ™์–ด์žˆ๋Š” ์†Œ์ผ“์˜ ์œ„์น˜๋ฅผ ์‹œ์ž‘์ ,๋์ ์œผ๋กœ ๋‘ฌ์„œ 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) ์—์„œ ํƒœ๊ทธ๊ฒ€์‚ฌํ•ด์„œ ๋ฐ๋ฏธ์ง€ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋˜๋Š”๊ฑด๊ฐ€์š”?

๊ทธ๋ฆฌ๊ณ  ์•Œ์•„๋ณด๋‹ˆ๊น ๋‹ค๋“ค ์ปดํฌ๋„ŒํŠธ๋กœ ์‹œ์ž‘,๋ ์ง€์ ์„ ๋‹ด์•„๋†“๋˜๋ฐ ์†Œ์ผ“์œผ๋กœ ํ•ด๋„ ๋˜๋‚˜์š”..?ย