Unreal) 클래스 구조
언리얼에도 다양한 클래스들이 등장한다.
처음 접했을 땐 복잡해 보였지만, 상속 구조를 알고나니 조금씩 연결성이 보이기 시작했다.
이번에는 언리얼의 대표적인 클래스들을 정리해 보고자 한다.
클래스
UObject
모든 언리얼 클래스는 UObject에서부터 시작된다.
가비지 컬렉션 기능을 지원하며, 데이터 저장 및 관리에 최적화된 구조를 가지고 있다.
이 객체는 엔진 내 대부분의 시스템과 연동되며, 모든 게임 오브젝트의 기반이 된다.
AActor
실제 게임 월드에 배치 가능한 객체가 된다.
우리가 게임에서 보는 모든 것들, 예를 들어 캐릭터, 아이템, 트리거 등이 바로 이 AActor를 기반으로 만들어진다.
위치, 회전, 스케일 정보를 갖고 있으며, 컴포넌트를 통해 다양한 기능을 확장할 수 있게 설계되어 있다.
이 클래스를 사용해 ADefenseTower, AWeapon, AProjectile 클래스를 생성 할 수 있다.
APawn
플레이어나 AI가 조작할 수 있는 객체이다.
입력을 받아 움직일 수 있는 기본적인 게임 캐릭터의 형태다.
ACharacter
APawn의 확장형으로, 보통 사람 형태의 캐릭터에 맞춰 설계되었다.
캡슐 콜리전, 메시, CharacterMovementComponent 등을 기본으로 포함하고 있어 이동, 점프, 중력 같은 동작을 쉽게 구현할 수 있다.
AController
Pawn을 제어하는 객체다.
사람(플레이어)이 조작하면 APlayerController, AI가 조작하면 AAIController를 사용한다.
APlayerController는 입력을 받고 이를 Pawn에 전달한다.AAIController는 Behavior Tree 등의 AI 로직을 통해 자동으로 캐릭터를 조종한다.
UActorComponent
AActor에 부착 가능한 기능 단위의 클래스가 바로 UActorComponent다.
USceneComponent
USceneComponent는 위치와 회전, 스케일 같은 트랜스폼 정보를 가질 수 있는 컴포넌트로, 계층 구조를 이루는 데 핵심적인 역할을 한다.
AInfo
위치 정보는 가지지만, 시작적으로 보이지 않는 Actor타입의 클래스다.
게임 로직이나 데이터를 담당하는데 적합해 보인다.
AGameModeBase
게임의 규칙, 플레이어 스폰, 시작/종료 조건 등 서버 중심의 게임 흐름을 제어한다.
오직 서버에만 존재하며, 각 레벨마다 하나만 존재한다.
UGameInstance
이 클래스는 UObject에서 직접 상속되며, 게임 전체에서 단 하나만 존재한다.
레벨을 이동해도 파괴되지 않고 유지되며, 로그인 정보, 설정, 서버 통신 등 게임 전반을 아우르는 데이터를 관리하는 데 사용된다.
다이어그램
전체 구조를 시각적으로 정리한 다이어그램이다.
이를 통해 어떤 클래스가 어떤 부모로부터 기능을 상속 받고 있는지를 직관적으로 이해할 수 있다.

댓글남기기