본문 바로가기
UE5 : Paper 2D (Blueprint)/이동과 전투

[UE5 : Paper2D(BP) - 이동과 전투] Chapter 05. 피격 판정

by song.ift 2024. 1. 8.

GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/e8209acf58d6fc4dfab15b163519a0bbdaa0c738

 

피격 판정 #1 · developeSHG/UE5-Paper2D@e8209ac

hokyung.song committed Jan 8, 2024

github.com

 

 

 


 

 

충돌 박스를 이용해서 피격 판정 체크를 진행.

공격 범위라는 건 공통적으로 들고있는니 Creature에 생성.

Sprite가 180도 뒤집힐 때, Box Collision도 같이 뒤집혀야하니 Spirte 산하에 붙여놨다.

충돌 박스안에 들어오는 오브젝트를 피격 범위로 인정한다.

 

GetOverlappingActors. 오버랩하고 있는 즉 영역에 겹쳐진 물체를 가져온다. 

필터를 해서 모든 액터가 아니라 내가 원하는 클래스 혹은 그 클래스를 상속받은 애들만 가져올 수 있다. 현재 살아있는 생명체를 모두 creature 라는 애로 관리하고 있으니 creature로 지정. 

 

여기선 충돌을 간단하게 테스트해보는 용도로 학습하지만, 충돌과 관련된 기능은 굉장히 다양하고 복잡하다.

왜냐하면 충돌이라는 게 딱 이렇게 몬스터 스킬 판별용으로도 활용하고 있지만, 카메라가 벽을 맞닥뜨리면 조금 더 앞에다 땡겨야 되는 지형 충돌의 경우도 있고, 허공을 클릭했을 때 유닛 선택하는 용도로 활용할 수도 있기 때문이다.

 

충돌은 활용하는 범위가 매우 넓기 때문에, 모든 물체를 대상으로 다 충돌하는 게 아니라 사진처럼 어떤 물체만을 대상으로 오버랩 등등을 할지 세부적인 선택을 해줄 수가 있다.

 

체력을 깎는 여러가지 방법이 있다.

공격을 한 물체에서 피격당한 물체의 정보를 꺼내 체력을 깎을지,

아니면 피격당한 물체쪽에 함수를 만들어 준 다음, 그 함수를 호출할지 선택할 수 있다.

근데 후자 방법이 훨씬 더 좋다. 결과적으로 피해를 받는 쪽에서 실행하는게 일반적이다.

 

Apply Damage라는 내장 충돌처리 함수가 있다.

위 함수를 사용하지 않고, 인용해서 직접 만들어보면 Attacker가 자기 자신(디스포인터)이라면 스킵하고, 데미지를 받는다.

댓글