프로그래밍 공부
작성일
2024. 2. 14. 17:29
작성자
WDmil
728x90

이전에 하였던 인터페이스 정리를 이번에는 다른 무기 또한 정렬해서 사용하도록 해보자.


항목별 정리

각 항목을 콘텐츠-> 폴더생성 을 통해 항목당 어울리는 폴더로 이동시켜 정리한다.


BP_HandFIreball

 

BP_Player에서 사용했던 interface와 BP_Weapon, BP_HandFireball을 사용하여 Wizard를 정리할 것 이다.

우선, 공격시 사용할 무기를 전환해야 함으로, 파이어볼 과 Sword는 같은 BP_Weapon을 상속받아 사용해야 한다.

 

정의된 파이어볼의 상속부모를 BP_Weapon으로 설정해주고 이름을 바꾸어주자.

HandFireball에는 이제 이펙트를 정의하지 않고, 무기 라는 개념을 가지는 Sword와 같은 개념으로 사용한다.

 

커스텀 이벤트로, OnSelelcted를 정의해서 해당 무기가 선택되었을 때 동작하는 함수를 생성해준다.


BP_Player

 

이제 BP_Player 에서 무기를 바꾸어주는 함수를 정의해준다.

함수는 WeaponChange로 인터페이스에서 정의해준 함수를 재정의하여 사용한다.

현재 무기가 유효한지 검사하고, 유효하다면 없애주고, 유효하지 않다면 새로운 무기를 장착시켜준다.

 

장착한 무기가 유효한지 검사하고, 유효하다면 끼워주고, 아니라면 무기칸을 비워준다.

 


BP_Sword

BP_Sword에서는 정해진 On Selected와 OffSelceted이벤트가 실행되었을 때의 이벤트를 재정의해주어야 한다.

위와같이 정의할 수 있다.

 

자기자신의 부모를 가져온다음, 해당 부모에 대한 State를 수정해주면 된다.

State를 수정하면 BP_Player에서는 자동으로 애니메이션을 전환할 것 이다.


테스트

 

원래대로의 동작사항을 유지한채, 객체관계를 재정립하였다.

 

728x90