[24.01.02]UE5 - Enemy Follow Player

손지·2024년 1월 25일
0

Unreal

목록 보기
20/43

우선 오늘은 저번에 작업하다가 발생한 버그를 해결했다.

저번시간 마지막에 적이 스폰된 후에 플에이어를 따라오다가 플레이어 지점에 도달한 뒤엔 멈추는 현상을 set timer by event로 시간 차로 따라오다가 1초마다 캐릭터의 위치를 다시 파악하고 따라오도록 하여 구현하였다.

오늘은 적이 총알에 피격시 사망하는 기능을 구현해보려 한다.

콜리전실린더의 에 디테일을 위와같이 변경하고

캡슐 컴포넌트의 콜리전 프리셋을 위와같이 설정한다.

그리고 변수에 추가하여 Base Damage 라는 변수를 만들고 형은 Float 형으로 한다 (데미지를 구현해야 하기 때문에)

Health 라는 최대체력을 저장하는 변수를 지정한다.

우선 히트이벤트를 이런식으로 만들면 피격시 체력이 줄어드면서 조건만족시 액터를 디스트로이드(파괴) 하는 로직이다.

지금부터는 전체 체력 및 현재체력을 계산하여 현재체력이 전체체력보다 적을시 파괴되는 로직을 구현해보려 한다.


지속적으로 도전 해보았으나.. 실패해서 참고자료를 변경후 새로 만들기로 하였다..

참고자료 : https://youtu.be/zkZaqGO-Hrk?si=YQwprNU9A6qE8gMS

먼저 콘텐츠폴더에 EnemyDamgeinterface 라는 인터페이스 블루프린터를 하나 만든다음 더블클릭후

hit enemy 라는 새로운 함수를 만든다.

그 다음 BP_Enemy 에 구현된 인터페이스를 추가하고 아까 만든 EnemyDamage Interface를 넣어준다.

health 라는 변수를 float형 으로 만들어주고

추가로 MaxHealth 도 만들어준다.

hit enemy 를 우클릭후 실행을 눌러주면

히트 이렇게 이벤트 그래프에 나타난다.

그리고 HitDamge 함수에 입력에 Damage를 넣고 형은 float로 준다.

그리고 먼저 BP_Enemy 이벤트 그래프에

위와같이 노드를 넣어준다음

BP_FirstPersonPrpjectile 에 변수탭에

또 Damage 변수를 추가한다음 역시나 float 형으로 줍니다

그리고 이 기능을 전체 드래그 하여 노드로 바꿔준 다음 노드의 이름을

와 같이 바꿔줍니다.

다시 BP_Enemy 이벤트 그래프에 돌아와서

와 같이 바꿔주면

전체 체력 ≥ 현재채력 조건만족시 개체 파괴를 실행하여 적이 죽는 기능을 구현하였다.

#추가적으로 현재 남은채력, 적 킬 메세지 출력도 함께된다.

아래에 동영상 링크를 남겨둔다.

https://youtu.be/ocOth-cheLI

느낀점 : 힘들다가 구현에 성공하면 재미가 있긴하다 아직 총 모션, 총 모델링이 없어서 조금 어색한 감은 있지만 그래도 확실히 나아가고있다.

다음에 할것 목록

  1. 적 체력바 표시
  2. 플에이어, 적 속도 제어 및 애니메이션 추가
profile
언리얼 개발자가 될사람

0개의 댓글