객체 인터페이스를 사용해서 좀 더 직관적이고, 객체지향적으로 정리하자.
전에 설게했던 대로, BP_Weapon 에서 BP_Combo로 상속이 이어지고, 그 후에 BP_Combo또는 BP_Sword으로 상속된다. ( 콤보가 없는 것은 바로 해당 무기로, 있다면, Combo로 상속된 후 임의의 무기로 이어진다.)
연결지어보자.
BP_Weapon
BP_Weapon이다. 인터페이스 처럼 상속 후 상속된 함수를 사용하게 할 것이다. 그럼으로 Get, Set등을 전부 정의해준다.
위 함수에서 TurnOnCollision, TurnOffCollision은 무기객체에서 활성화 하게 됨으로 비워놓는다.
함수의 내부는 대부분 위와 비슷하게 이루어진다.
Owner를 찾아서, 해당 Owner의 interface에 접속, 인터페이스가 존재한다면, 필요한 State정보, Bool정보 등을 참조하여 반환한다.
Owner를 설정하는것 과 State같은 Enum값을 초기에 정의해주어야 한다.
BP_Combo
BP_Combo는 무기에 콤보시스템이 존재할 경우 사용하는 객체이다. 이 객체는 콤보값을 참조하여, 해당 콤보값이 존재한다면, 범위밖을 침범하지 않는다면, 다음에 블렌딩될 ABP를 재정의하고 해당되는 ABP를 실행하는 역할을 한다.
BP_Player에 있는 블루프린트 들을 대부분 재활용한다.
LastCombo판정부 에서는 Bool타입으로 데이터를 검사하고, Combo공격중 LastCombo에 해당될 경우, LastCombo이벤트를 실행해서 마지막 공격에 대한 예외처리를 진행한다.
이러한 판정부는 Notify에서 진행한다.
BP_Sword
BP_Sword이다, 콤보공격이 존재할 경우와 존재하지 않을경우에 상관없이 지정된 Copllision을 끄거나 키거나 하는 함수를 오버라이드하고,
Weapon을 상속받음으로 해당 객체의 모든 함수를 사용할 수 있다.
이밴트 그래프는 필요한 대부분의 함수부가 모두 상속받기전에 이루어졌음으로, 매우 간소화된 절차를 따른다.
BP_Player
인터페이스에서 상속받은 데이터를 활용해서 오버라이드 이벤트를 통해, 정상적으로 전환될 수 있도록 해준다.
이런 방법을 반복해서 데이터를 정리하면 같은 결과물을 더 객관적으로 얻을 수 있다.
'서울게임아카데미 교육과정 6개월 국비과정' 카테고리의 다른 글
20240215 95일차 언리얼 객체 인터페이스 구축 & 정리 4 (0) | 2024.02.15 |
---|---|
20240214 94일차 언리얼 객체 인터페이스 구축 & 정리 3 (0) | 2024.02.14 |
20240207 91일차 언리얼 객체 인터페이스 구축 & 정리 1 (0) | 2024.02.07 |
20240206 90일차 언리얼 마법 충돌 & 충돌 처리 (0) | 2024.02.06 |
20240205 89일차 언리얼 마법 추가 & 마법 이펙트 적용 (0) | 2024.02.05 |