언리얼에도 다양한 클래스들이 등장한다.

처음 접했을 땐 복잡해 보였지만, 상속 구조를 알고나니 조금씩 연결성이 보이기 시작했다.

이번에는 언리얼의 대표적인 클래스들을 정리해 보고자 한다.

클래스

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에서 직접 상속되며, 게임 전체에서 단 하나만 존재한다.

레벨을 이동해도 파괴되지 않고 유지되며, 로그인 정보, 설정, 서버 통신 등 게임 전반을 아우르는 데이터를 관리하는 데 사용된다.

다이어그램

전체 구조를 시각적으로 정리한 다이어그램이다.

이를 통해 어떤 클래스가 어떤 부모로부터 기능을 상속 받고 있는지를 직관적으로 이해할 수 있다.

image-20250421095045311

댓글남기기