이번시간에는 다음 두 가지를 진행할 예정이다.
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 |