기존에 만들었던 CharacterBase클래스를 통해 Enemy클래스를 만들어 주었다.

CharacterBase클래스엔 캐릭터가 가져야할 공통적인 정보들이 있어 Enemy를 만들 수 있다.

필요한 변수와 함수를 만들어 주었다.

 

CharacterBase에서 상속받은 AbilitySystemComponent와 Attribute를 메모리 할당시켜주고

BeginPlay에서 Ability를 초기화 시켜주고 Attribute에서 Health를 Delegate로 바인딩 해주었다.

 

HealthBarWidget은 캐릭터와 동일하다. 이것 또한 블루프린트화 시켜주고 ProgressBar를 추가시켜주었다.

 

Enemy클래스를 블루프린트화 시켜주고 준비해둔 메쉬를 설정해준 뒤 블루프린트에서 HealthBarWidgerComponent 디테일 창에서 위젯 클래스를 지정해준다.

 

이제 뷰포트에 Enemy를 만들어주고 실행시켜보면 HealthBar와 Enemy가 존재되었다.

 

Enemy의 HealthWidget에 시각적으로 보이니 카타나 기본공격을 통해 데미지를 주어 Health에 영향을 줄 수 있게 되었다.

먼저 카타나 무기에 데미지를 줄수있는 효과핸들의 변수를 선언 및 함수기능을 만들어 주었다.

그리고 카타나 스킬을 쓸때 효과를 줄수있는 이펙트를 만들고 디테일에서 Modifiers에 인덱스를 추가해주고 Health에 대해 Add로 -5의 값을 설정 해주었다.

 

이제 BaseAttack함수 방금 만든 이펙트를 저장시켜줄 변수와 BaseAttack함수에서 핸들을 만든 뒤 카타나의 핸들에 저장시켜 주었다.

 

마지막으로 카타나의 콜리전에 Enemy가 닿을 시 충돌을 감지할 수 있는 Collision을 만들어주었다.

카타나의 콜리전 상태이다.

 

카타나 공격 몽타주에서 사용할 노티파이를 만들어 주었다.

 

그런다음 몽타주에서 필요한 프레임구간에 노티파이를 설정해주었다.

 

이제 게임을 플레이 해보면 몬스터의 체력이 줄어들는게 보이게 되었다. 또는 Debug를 통해서도 볼수 있었다.

 

 

+ Recent posts