지금까지 구현하였던, 케릭터를 바탕으로 인터페이스 형태로 재구축하여, 무기를 기준으로 설계를 다시해보자.
무기를 든 Character는 항상 그 무기의 공격모션 을 사용할 수 있어야 한다. 그럼으로, 무기와 케릭터를 인터페이스로 정의하고, 해당 인터페이스를 구현하여 각 캐릭터당 공격모션을 자유롭게 사용할 수 있도록 공통사항을 주어야 할 것 이다.
ICharacter , IWeapon으로 구성된 인터페이스를 상속받는 각 무기와 Character를 생성한다.
여기서, 캐릭터는 지금까지 만들었던 player와 Enemy, 무기는 만들었던 Sword와 FireBall이다.
인터페이스 구축하기
언리얼에서는 간단하게 인터페이스를 구현할 수 있도록 지원해주고 있다.
위와 같이, 블루프린트 인터페이스를 생성해준다.
인터페이스 창 이다. 이 창 내부에서 사용해야할 값들은 Weapon과 현재 상태, 현재 무기상태, 움직일수 있는지 , 무기콤보의 상태 등 이다.
이 스테이터스를 사용해서 현재 무기의 상태값을 받아와 통제할 것 이다.
각 구현부는 Get과 Set을 통해, 기본적인 데이터구조를 받아오고 설정할 수 있도록 정의해준다.
예를들어 GetCurrent를 구현한다고 하면, 현재 Weapon을 가져와야 함 으로, 다음과 같이 구현한다.
예를들어 Set_Weapon_State를 구현한다고 하면, enum을 가져와 구현해야 함으로 다음과 같이 구현한다.
인터페이스는 읽기 전용임으로 수정할 수 없다는 점에 유의하자.
인터페이스 적용하기
이제 플레이어에서 인터페이스를 적용해보자. 간단한 방법으로 인터페이스를 적용할 수 있다.
BP-> 클래스 세팅-> 디테일창 의 인터페이스 추가
를 통해 인터페이스를 어떤걸 구현할 것 인지 정의한다.
이로써, 캐릭터는 인터페이스를 받아와 구현만 해주면 된다.
각 구현부는 Player의 변수값을 기입받아 전달하는 식으로 구현해주면 된다.
위와같이 정의하고 연결하였다면 성공이다.
이제, 지금까지 연결해놓았던 모든 공격이펙트, 공격입력 이벤트 등을 전부, State기준으로 재정의해야 한다.
'서울게임아카데미 교육과정 6개월 국비과정' 카테고리의 다른 글
20240214 94일차 언리얼 객체 인터페이스 구축 & 정리 3 (0) | 2024.02.14 |
---|---|
20240213 93일차 언리얼 객체 인터페이스 구축 & 정리 2 (0) | 2024.02.13 |
20240206 90일차 언리얼 마법 충돌 & 충돌 처리 (0) | 2024.02.06 |
20240205 89일차 언리얼 마법 추가 & 마법 이펙트 적용 (0) | 2024.02.05 |
20240202 89일차 언리얼 트레일 이펙트& 애니메이션 노드정리하기 (0) | 2024.02.02 |