GameDevelop/UnrealEngine

UnrealEngine - UObject와 AActor

Une_ 2025. 12. 18. 20:55

언리얼 엔진의 UObject와 AActor에 대해 정리해보았습니다.

구글링 및 Gemini를 참고했습니다.

 

1. UObject

언리얼 엔진에서 관리되는 최상위 기본 클래스입니다.

  • 특징: 월드에 존재(배치)할 수 없으며, 형체가 없습니다.
  • 제공 기능:
    • 리플렉션 시스템 : UObject는 UCASS, UPROPERTY, UFUNCTION 매크로를 통해 언리얼 엔진의 리플렉션 시스템을 사용할 수 있습니다. 덕분에 에디터에서 속성을 조작하거나 블루프린트 연동, 저장 및 로드 될 수 있습니다.
    • 가비지 컬렉션 : UObject를 상속받은 객체는 언리얼엔진의 GC에 의해 자동으로 메모리 수명주기가 관리됩니다.
    • 직렬화 : 자신의 속성을 저장하고 불러올 수 있습니다. 게임상태를 저장하거나 네트워크를 통해 객체 데이터를 전송할 때 유용합니다.
    • 에디터 기능 : 콘텐츠 브라우저에 표시되거나, 디테일 패널에서 속성을 편집할 수 있고 블루프린트 연동이 가능합니다.
  • 사용 예: 데이터 저장용 에셋, 인벤토리 아이템 정보, 스킬 데이터 등 데이터 중심의 객체.

2. AActor

UObject를 상속받아 월드(Level)에 배치될 수 있게 만든 객체입니다.

  • 특징: SpawnActor를 통해 생성되며, 생명주기(BeginPlay, Tick, EndPlay)를 가집니다.
    • 생성한 Actor는 명시적으로 삭제가 필요합니다.
    • 단, Level이 언로딩되면 생성된 모든 Actor들이 삭제됩니다.
  • 핵심 기능:
    • Transform : 위치, 회전, 크기 정보를 가집니다.
      • 주의점: 액터 자체는 '위치 정보(Transform)'가 없습니다. 위치를 가지려면 반드시 USceneComponent를 RootComponent로 가져야 합니다.
    • 네트워크 복제(Replication):  서버-클라이언트 간 동기화가 가능합니다. (네트워크를 통해 자신의 상태를 클라이언트들에게 복제하는 기능을 제공합니다.)
    • 컴포넌트 소유: UActorComponent를 상속받는 여러 컴포넌트들로 기능을 확장할 수 있습니다.

 

3. APawn: 조작이 가능한 액터 (AI나 유저가 빙의 가능).

4. ACharacter: 걷기, 점프 등 물리 기반 이동 로직이 포함된 고성능 Pawn.