UE5) 자손 클래스 생성
게임을 하면 적의 형태는 여러가지가 있다는 것을 알 수 있는데, 적들의 공통 기능들이 있다면 이를 구현할 때 일일이 하나씩 구현하는 것은 시간낭비이다. 이 때 C++의 자손 클래스 기능을 통해 빠르게 구현할 수 있다.
캐릭터의 공격에 맞고 캐릭터를 추적하는 적의 기능이 구현되어있다면 이 클래스의 자손 클래스를 생성할 수 있다.
부모로 삼고자 하는 클래스파일을 우클릭하면 자손 블루프린트 클래스를 생성할 수 있다.
생성된 자손 블루프린트 클래스를 생성하면 컴포넌트는 부모 클래스와 똑같은 걸 볼 수 있다. 이벤트 그래프는 기본 노드들이 Parent의 이벤트 그래프를 가져와 쓰는 것처럼 보인다. 하지만 자손 클래스는 부모 클래스의 이벤트 그래프의 노드들을 그대로 가져와 사용한다. 이는 C++의 상속 기능과 같은 기능이며 객체 지향 프로그래밍의 장점이다.
https://zzugest1.tistory.com/60
C++) 상속
상속 : 기존 클래스(부모 클래스 또는 기초 클래스)의 속성과 메서드를 새로운 클래스(자식 클래스 또는 파생 클래스)에서 재사용할 수 있게 해주는 기능 부모 클래스와 자식 클래스:부모 클래
zzugest1.tistory.com
부모 클래스의 기능은 가지고 왔지만 모습은 달리 해야 하기 때문에 스켈레탈 메시는 바꿔줘야 하고 이에 맞게 애니메이션 기능 들도 바꿔주어야 한다.
부모 클래스의 기능 중 바꾸고 싶은 부분이 있다면 이는 자손 클래스에서 수정이 가능하다.
예를 들어
부모 클래스에 오버랩 상황시의 기능이 위와 같이 On Weapon Overlap함수로 연결되어 있다면
위와 같이 자손 클래스에서 부모 클래스의 함수를 오버라이드해서 가져올 수 있다.
이렇게 오버라이딩한 함수를 가져와 자손 클래스에 맞는 로직을 연결해 함수의 기능을 변형해줄 수 있다. 이벤트 그래프로 가져와 로직을 연결하면 자손 클래스의 On Weapon Overlap 함수는 자손 클래스대로 기능할 것이다.
어쌔신 형태의 적은 검에 맞을 시 경직이 있지만 괴물 형태의 적은 검에 맞아도 경직이 없도록 일부 수정해주었다.
이렇게 C++의 상속 개념을 이용해 효율적으로 클래스를 생성할 수 있다.