프로그래밍 공부
작성일
2024. 2. 13. 16:18
작성자
WDmil
728x90

객체 인터페이스를 사용해서 좀 더 직관적이고, 객체지향적으로 정리하자.

 

전에 설게했던 대로, 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

인터페이스에서 상속받은 데이터를 활용해서 오버라이드 이벤트를 통해, 정상적으로 전환될 수 있도록 해준다.

 

 

이런 방법을 반복해서 데이터를 정리하면 같은 결과물을 더 객관적으로 얻을 수 있다.


728x90