상속 이용한 Weapon 구조를 제작할 예정이다.
그리고 Combo 불러오는 작업을 진행 할 예정이다.
1. BP_Weapon > "SetState" 함수 생성, 다음과 같이 세팅
* 입력에 EstateType - State 생성
2. 복사하여 "SetCombat" 함수 생성, 다음과 같이 세팅
* 입력에 ECombatType - Combat 생성
여기까지 작업한 내용을 정리하면 다음과 같다.
- 인터페이스 역할은 이쪽에 값을 전달해주고, 이쪽에 값을 세팅해주고 등의 중간역할이므로 많은 것들이 필요하지 않음
- BP_Weapon > 다음 함수들은 위의 함수들과 1:1로 매칭되는데, 인터페이스를 통해서 캐릭터와 통신
Weapon 구현작업 (2차)
1. ECombatType 형 "CombatType" 변수생성
2. Can Attack 함수 생성 및 다음과 같이 세팅
- 공격이 가능한지 상태를 체크
3. "Attack", "EndAttack" 함수생성
Attack 은 자기가 필요한대로 재정의 해서 사용할 것이기 때문에 아무것도 세팅하지 않을 예정이다.
나중에 자기가 가진 무기에 대해서 재정의해서 사용
* Virtual 가상화 함수 개념임
정리 : BP_Weapon 에 Attak을 정의, BP_Weapon 으로부터 상속받은 자식에서는 Attack 을 재정의
Character 쪽에서는 Weapon으로 상속받은 자식이 누구건 해당 클래스의 Attack 호출
4. "SendDamage" 함수생성 > BP_Sword 의 이벤트 그래프에서 다음노드 잘라오기 후 다음과 같이 세팅
* 입력에 Actor 형 Other Actor추가
5. BP_IWeapon > "GetCharacterCanMove", "SetCharacterCanMove" 생성 및 다음과 같이 생성
어떤 콤보 공격은 이동할 수 있고, 어떤 콤보 공격은 이동할 수 없기 때문임
6. SetCharacter State/Combat 다음과 같은 형식으로 수정
7. SetCharacterCanMove 다음과 같이 수정
8. BP_Player > SetCharacter State/Combat 다음과 같이 세팅
9. BP_Player > Set Character Can Move 다음과 같이 세팅
9. BP_Player > Get Character Can Move 다음과 같이 세팅
이제 "BP_Weapon" 구현 관련은 처리가 다 되었으니, 다음으로는 "Combo" 를 구현할 예정이다
Combo 구현
1. "BP_Weapon" > 자손 블루프린트 클래스 생성 > "BP_Combo" Rename
아니면 새 블루프린트 생성 > 부모 클래스 선택 > "BP_Weapon" 선택 > "BP_Combo" Rename
2. BP_Player > 이벤트 그래프 > Begin Play Event > Load Sword Combo Table
1) 콤보 테이블을 불러오는 부분 잘라내기
2) BP_Player > 이벤트 그래프 > Begin Play Event
이제 캐릭터가 아니라 Weapon 쪽으로 넘어갈 것이므로 다음 부분 지워주기
3) BP_Combo > BeginPlay 이벤트 생성 > 해당부분 붙여넣기
4) "Player_Combo_Table" > "Sword_Combo_Table" Rename
플레이어 콤보 테이블은 Sword 플레이 정보를 가지고 있으므로 Sword 테이블로 변경
5) "FComboTable" > "FComboMontage" Rename
6) "Sword_Combo_Table", "FComboMontage" 두개 다 무기에 관련된 것이기 때문에 Weapon 쪽으로 이동
3. "BP_Weapon" > Data Table 형 "ComboTable" 변수 생성, "BP_Weapon" > FCombo Montage 형 "ComboMontages" 배열 생성
4. "BP_Weapon" > 다음과 같이 세팅
Combo를 상속해서 쓸 무기가 어떤 것이든 간에 콤보 기능을 사용할 수 있도록 확장성 있게 변경
다음시간에는 플레이어에서 필요한 코드들을 콤보에 가져와서 기능을 구현하고, 정리하는 작업을 계속 진행할 예정이다.
다음시간이 기대가 된다!
'Unreal Engine > 게임클래스 - 언리얼엔진 기초' 카테고리의 다른 글
[45강] Calling Weapon Attack (0) | 2024.08.26 |
---|---|
[44강] Inherit Combo (0) | 2024.08.05 |
[42강] Interface (0) | 2024.07.29 |
[41강] Inherit Weapon Diagram (0) | 2024.07.26 |
[40강] Attach Particle System (0) | 2024.07.25 |