[UE4] 기본 공격(평타) 코드 리펙토링 리뷰

그림자왕국·2021년 6월 28일
1

UE4

목록 보기
2/7

기존 Character.h 클래스의 상황

기존 Character.h 클래스는 캐릭터의 평타를 구현하기 위해 4개의 함수와 5개의 프로퍼티(변수)가 구현되었다. 따라서 안 그래도 큰 Character.h 클래스의 코드가 더 많아지고 복잡해져서 이 부분을 새로운 클래스로 분리시켰다.

autoAttack.h 클래스를 생성

UObject를 지원하는 새로운 클래스를 생성하여 Character 클래스의 기본 공격 코드를 모두 이전하였다. 이 클래스는 이제 Character 클래스에서 싱글톤으로 기본 공격을 구현하기 위해 인스턴스화되어 사용될 것이다. 이 클래스는 애니메이션에 활용하기 때문에 animinstance.h 헤더가 포함됐다.

리펙토링 후의 Character.cpp 클래스의 상태

리펙토링 후 Character 클래스는 더 이상 평타 공격 함수를 구현하거나 관련 프로퍼티가 요구되지 않았으며 모든 평타 공격은 모듈화된 autoAttack 클래스에서 구현되어 생성자에서 인스턴스화 된다.

컴포넌트 초가화 단계(PostInitlializeComponents)에서 autoAttack 클래스의 캐릭터 스켈레탈 메시 정보가 필요하기에 (애니메이션 구동을 위해) 따로 현재 캐릭터의 애님 인스턴스 주소를 넘겨주는 함수만 호출하여 간편화되었고 마우스 버튼과의 바인딩 역시 인스턴스화된 autoAttack 객체의 주소를 넘겨줘서 평타 조작키를 바인딩하였다.

profile
언리얼 엔진 매니아입니다.

0개의 댓글