Unreal Engine/게임클래스 - 언리얼엔진 기초

[46강] 전체 구조 및 버그 해결

whereareyoung 2024. 8. 26. 22:56

이번시간에는 다음 두 가지를 진행할 예정이다.

1. 칼 공격할때 무조건 번개치는 버그 해결 3콤보일 때 만 

2. 위저드 아이템에 대한 구조 설명 

 

구현에 앞서, 전체적인 구조를 살펴보면 다음과 같다.

 

전체구조 정리 

1. "BP_Player" 와 "BP_Enemy" 를 각각 인터페이스 "BP_IWeapn" 에 상속을 주면서 묶어놓음 

"BP_IWeapn" 에는 공통으로 이 인터페이스를 가진 애들이 리턴해줄 값들, 세팅해줄 값들을 함수에 넣어둠 

"BP_Player" 와 "BP_Enemy" 둘다 인터페이스를 통해 값을 가져올 수 있다. 

 

* 클래스로 묶어주어서 구현하였을 경우

예를들어, "BP_Player" 와 "BP_Enemy" 둘다 캐릭터 공통으로 상속받는데 Weapon 을 처리하기 위해 BP_CharacterWeapon 이런식으로 상속하면 BP_Item 구현할때는 또 복잡함 또 상속받아야 하고.. 

클래스로 하면 덩이가 커질 뿐만 아니라 부모클래스는 일회성이라는 단점이 있음 반면에 인터페이스는 계속 추가 가능!

 

따라서 필요할때마다 필요한 인터페이스 추가할 수 있도록 인터페이스로 분리를 해주는 것이 효율적임  

 

" 클래스 상속은 단 하나만 받을 수 있지만 인터페이스는 개수에 상관없이 상속이 가능함 "

 

2. 전체 구현 구조

 

"BP_Player" 와 "BP_Enemy" 둘다 인터페이스 "BP_IWeapon" 을 통해 "BP_Weapon" 과 통신

* " BP_IWeapon" 에 "BP_Weapon " 이랑 인터페이스랑 1:1로 매칭되는 함수를 다 만들어 놨음 호출 할 수 있도록 

 

"BP_Weapon" 에 추가적으로 정의한게 Attack, Can Attack, End Attack 

 

그리고 "BP_Weapon" 을 상속받아서 "BP_Combo"구현 Attack, End Attack, Play Next Combo / "BP_Wizard" 구현 Attack

"BP_Combo" 로부터 상속받은 "BP_Sword" 구현 Attack 

 

Sword, Wizard 라는 객체는 Weapon 으로 묶임 

어떤 무기든지 Attack 을 Call 함

Attack 을 무기별로 재정의 해서 다 다르게 구현이 되는 형태임 

 

버그 해결 

라스트 콤보 체크 문제로 마지막 이펙트 플레이가 처음 타격부터 플레이하는 버그 수정 

 

1. 문제파악 

BP_Player > 이벤트 그래프 > Attacking Event > PlayLastComboEffect 

 위에 보면 별다른 조건 없이 바로 LastComboEffect 가 출력이 되게 되어있음 

Last Attack 이라면 Play 시키고, Last Attack 해제 시킬 수 있게 다시 구현하여야 함 

 

2. BP_Player > "Get Last Combo" 함수 생성 및 다음과 같이 세팅 

* Last Attack 데이터는 "BP_Combo" 에 들어있음, 따라서 Weapon 에서 Combo 를 캐스팅 해서 여기서 데이터를 불러와야 함 

 

3. BP_Player > "Set Last Combo" 함수 생성 및 다음과 같이 세팅 

* 퓨어해제, 입력에 "Last Combo", 출력에 지워주기 

 

4. BP_Player > 이벤트 그래프 > Attacking Event > PlayLastComboEffect 

위와 같이 세팅 

 

 

위저드 구현 관련

1. Skel_Mannequin > ThrowFireBall 위치 다음과 같이 수정 

 

BP_Wizard 구조 

BP_Weapon 을 상속해서 BP_Wizard 가 있는데 이 밑에 BP_Wizard Item 을 상속할 예정이다. 

BP_Wizard Item 을 상속해 Throw, Heal, Warp 를 구현할 것이다. 

Throw 아래에는 Throw가 가지고 있는 물체를 Spawn 해서 날리는 식으로 각 Fireball, Iceball 등이 들어갈 수 있다. 

 

* 마법 구현 종류 : 파이어볼, 힐링, 순간이동 

아이템을 사용하면 각각 구현되도록 세팅할 예정이다. 

 

 

 

'Unreal Engine > 게임클래스 - 언리얼엔진 기초' 카테고리의 다른 글

[48강] Wizard Skill(Healing) - 1  (0) 2024.08.26
[47강] Wizard Skill  (3) 2024.08.26
[45강] Calling Weapon Attack  (0) 2024.08.26
[44강] Inherit Combo  (0) 2024.08.05
[43강] Inherit Weapon  (0) 2024.07.31