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
에서 직접 상속되며, 게임 전체에서 단 하나만 존재한다.
레벨을 이동해도 파괴되지 않고 유지되며, 로그인 정보, 설정, 서버 통신 등 게임 전반을 아우르는 데이터를 관리하는 데 사용된다.
다이어그램
전체 구조를 시각적으로 정리한 다이어그램이다.
이를 통해 어떤 클래스가 어떤 부모로부터 기능을 상속 받고 있는지를 직관적으로 이해할 수 있다.
댓글남기기