KoreanFoodie's Study
[언리얼] 헤드샷 구현하기 (부위별 피격 데미지 설정) 본문
헤드샷 구현하기 (부위별 피격 데미지 설정)
FPS 게임을 하다보면 헤드샷에 추가 데미지 (혹은 즉사) 를 주는 경우가 많은데, 이는 어떻게 구현하면 될까?
간단한 방식으로는, 일단 총알을 맞은 Enemy 클래스 내 Skeletal Mesh 의 Bone Name 을 참고하는 방법이 있다.
스켈레톤 트리를 보면 일반적으로 다음과 같이 head 가 있는 것을 확인할 수 있다.
이제 데미지를 받는 함수를 다음과 같이 수정하면 된다.
AEnemy* HitEnemy = Cast<AEnemy>(BeamHitResult.Actor.Get());
if (HitEnemy)
{
if (BeamHitResult.BoneName.ToString() == HitEnemy->GetHeadBone())
{
// Head shot
}
else
{
// Body shot
}
}
이때, BeamHitResult 는 FHitResult 타입이다. BoneName 멤버를 통해 본 이름을 조회해 원하는 본의 이름(e.g. "Head")과 같으면 헤드샷 처리를 해 주면 된다!
'Game Dev > Unreal C++ : Dev Log' 카테고리의 다른 글
[언리얼] Widget 데이터와 클래스 데이터 연동(bind) 하기 (0) | 2022.06.23 |
---|---|
[언리얼] int8 을 쓰면 에러가 발생한다고? (0) | 2022.06.22 |
[언리얼] 언리얼 인터페이스 - Does Implement Interface 기능으로 데미지, 인터랙션 구현하기 (0) | 2022.06.22 |
[언리얼] 1인칭 시점 구현하기 (카메라와 메시 연동) (0) | 2022.06.22 |
[언리얼] UFUNCTION 과 FORCEINLINE 을 같이 사용하지 말자 (2) | 2022.06.20 |
Comments