Actor와 Object | [언리얼 엔진 C++ (Unreal Engine C++)]

2026. 6. 5. 02:05·Unreal Engine/UE 기초

언리얼 엔진을 학습하다 보면, 가장 먼저 접하게 되는 개념 중 하나가 UObject와 AActor입니다. 둘 다 엔진에서 매우 중요한 클래스 계층을 이루고 있으므로, 차이점을 확실히 알아두면 좋습니다.

 

Actor와 Object 

 


 

Actor와 Object 개념

 

Object (UObject)의 개념

  • Object = 객체지향 프로그램에서의 객체
  • UObject는 언리얼 엔진에서 모든 클래스의 최상위 부모 클래스입니다. (뿌리, 조상)
  • 모든 클래스는 이 오브젝트 클래스를 상속받는다
  • 스스로 월드(레벨)에 배치될 수 없습니다. 주로 데이터나 로직만 담당합니다.
    • 예: 플레이어 능력치(HP, 경험치), AI 정보, 게임 설정 값, 임시 계산 로직 등
  • 주로 화면에 보이지 않는 데이터나 로직을 처리합니다.
  • 단 오브젝트는 실제 월드상에 배치가 안됨.
  • 추상적인 개념이다.

 

Actor (AActor)의 개념

  • Actor 또한 Object를 상속받는다
  • AActor는 UObject를 상속한 클래스로, 월드에 배치(Spawn) 할 수 있습니다.
  • 위치, 회전, 크기 등 공간적 정보를 가지고 있고, 여러 컴포넌트 (Component)를 추가로 붙일 수 있습니다. (컴포넌트 관련 내용은 다음 강의에서 배웁니다.)
  • 실제 게임 세계에서 보이고 상호작용하는 캐릭터, 적 몬스터, 무기, 조명, 파티클 효과 등은 주로 AActor를 기반으로 제작합니다.

 


 

 Actor 클래스 생성하기

  • 액터 클래스를 만들겠다 = 액터를 상속받는 클래스를 만들겠다
  • 언리얼 에디터 상단 메뉴에서 “Tools” → “New C++ Class”를 선택합니다.

  • 팝업 창이 뜨면 Common Classes 탭에서 Actor를 선택한 뒤 Next 버튼을 누릅니다.

  • 만약 Actor가 안 보인다면, “All Classes” 탭에서 직접 검색해 보세요.

 

  • 클래스 이름은 Item으로 하고, Class Type (폴더 위치)은 기본값인 Public으로 둔 뒤 “Create Class”를 누릅니다.

Live Coding 이 실행되고,  다 컴파일되면 IDE 실행됩니다. (Visual Studio의 경우 Reload All 해줘야 합니다)

생성된 클래스 파일 확인

  • IDE에서 Solution Explorer를 보면, Source/SpartaProject → Public 폴더 아래에 Item.h, Private 폴더 아래에 Item.cpp 파일이 생성된 것을 확인할 수 있습니다.
    • 동시에 Public 폴더와 Private 폴더도 생성된 것을 확인할 수 있습니다.
    • Class Type 옵션에 대한 추가 설명
      • Public으로 생성할 경우:
        • . h가 Public 폴더에,. cpp가 Private 폴더에 생깁니다.
        • 프로젝트의 다른 모듈에서 쉽게 #include 할 수 있어 편리합니다.
      • Private으로 생성할 경우:
        • . h와. cpp 모두 Private 폴더에 저장됩니다.
        • 해당 모듈에서만 접근 가능하게 되며 특정 로직이나 구현을 캡슐화해서 외부에 노출하고 싶지 않을 때 사용합니다.
      • 프로젝트 규모가 커질수록 Public과 Private을 구분하여 사용하는 것이 좋습니다. 외부 모듈에서의 접근 허용 여부를 명확하게 관리하여 코드 구조를 유지할 수 있습니다.
      • 그러나 학습 단계에서는 보통 Public 방식을 추천합니다.
    • 언리얼 에디터 Content Browser의 C++ Classes → SpartaProject 폴더 아래에도 Item 클래스가 나타나면 정상입니다
    • 동시에 Public 폴더와 Private 폴더도 생성된 것을 확인할 수 있습니다.
    • Class Type 옵션에 대한 추가 설명
      • Public으로 생성할 경우:
        • . h가 Public 폴더에,. cpp가 Private 폴더에 생깁니다.
        • 프로젝트의 다른 모듈에서 쉽게 #include 할 수 있어 편리합니다.
      • Private으로 생성할 경우:
        • . h와. cpp 모두 Private 폴더에 저장됩니다.
        • 해당 모듈에서만 접근 가능하게 되며 특정 로직이나 구현을 캡슐화해서 외부에 노출하고 싶지 않을 때 사용합니다.
      • 프로젝트 규모가 커질수록 Public과 Private을 구분하여 사용하는 것이 좋습니다. 외부 모듈에서의 접근 허용 여부를 명확하게 관리하여 코드 구조를 유지할 수 있습니다.
      • 그러나 학습 단계에서는 보통 Public 방식을 추천합니다.
  • 언리얼 에디터 Content Browser의 C++ Classes → SpartaProject 폴더 아래에도 Item 클래스가 나타나면 정상입니다.

주의할 점

Actor 생성 시 IDE에서 할 수는 있지만 세팅해야 할 것들이 좀 있기 때문에 특수한 상황 아니면 위에 했던 방식으로 생성하자

 

Actor 배치

  •  Item 클래스를 레벨 뷰포트로 드래그 & 드롭하여 배치합니다. (현재는 눈에 보이지 않음)
  • Outliner 창에서는 확인할 수 있습니다.

 


Actor 클래스 삭제하기

Content Browser에서 바로 삭제 불가

  • 우클릭 혹은 'Del' key 다 불가능합니다

 

IDE에서 클래스 제거

  • 언리얼 에디터를 종료합니다.
  • Visual Studio를 열어, Solution Explorer에서 삭제할 클래스를 찾습니다.
  • . h와. cpp 파일을 각각 우클릭 → Remove를 선택합니다.
  • 상단 메뉴에서 File → Save All로 저장합니다.
  • 이 작업은 솔루션 (프로젝트 구성 정보)에서만 제거하는 것이므로, 실제 디스크의 파일은 아직 남아 있습니다.

 

프로젝트 폴더에서 물리적 파일 삭제

  • 윈도 탐색기로 Source/ProjectName 아래의 Public 혹은 Private 폴더로 이동합니다.
  • 방금 Remove 했던. h,. cpp 파일을 직접 삭제합니다.
  • 그리고 IDE로 돌아가서 빌드를 한 후, 다시 언리얼 에디터를 실행하면, 해당 클래스가 Content Browser에서도 사라진 것을 확인할 수 있습니다.
  • 만약 이 과정을 무시하고 언리얼 에디터에서만 Delete 하거나, 설루션에서 Remove 하지 않고 폴더에서만 파일을 삭제하면 빌드 에러 혹은 클래스 미삭제 같은 문제가 생길 수 있습니다.
  • 항상 에디터 종료 → 솔루션 Remove → 물리 파일 삭제 → (IDE 빌드) → 에디터 재실행 순서를 지키면 안전합니다.

 


 

Conclustion

 

  • 언리얼 엔진이라는 것은 항상 여러 가지 클래스들이 엔진 자체에서 준비가 되어 있는데, 우리는 그 각각의 클래스들을 상속받아서 클래스를 생성하게 되는 것이다.

 

추천

 

[페이지] Unreal Engine | 언리얼 엔진

 

언리얼 공식 문서를 참고


Actor: https://dev.epicgames.com/documentation/unreal-engine/actors-in-unreal-engine

 

Actors in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer Community

Actors and Objects, the basic gameplay elements in Unreal Engine

dev.epicgames.com

Objec: https://dev.epicgames.com/documentation/unreal-engine/objects-in-unreal-engine

저작자표시 동일조건 (새창열림)
'Unreal Engine/UE 기초' 카테고리의 다른 글
  • 언리얼 엔진 Actor의 라이프 사이클, Log 사용 | [언리얼 엔진 C++ (Unreal Engine C++)]
  • Actor 클래스 코드 구조 | [언리얼 엔진 C++ (Unreal Engine C++)]
  • Asset Migration, 레벨 생성과 맵 설정 | [언리얼 엔진 C++ (Unreal Engine C++)]
  • 언리얼 에디터 Live Coding, 주의 사항 | [언리얼 엔진 C++ (Unreal Engine C++)]
DevCol
DevCol
DevCol (Development Collaboration). 함께 개발 & 공부 & IT 정보 나눔장소
  • DevCol
    DevCol (Development Collaboration)
    DevCol
  • 블로그 메뉴

    • Unreal Engine
    • TIL
    • 게임국가기술자격검정 게임프로그래밍전문가 [한국콘텐츠진흥원]
    • 분류 전체보기 (73) N
      • Unreal Engine (31) N
        • Project (2) N
        • Dev Log (0)
        • Debugging (2) N
        • Blueprint (1)
        • UE 기초 (25) N
        • UE 심화 (0)
        • TA (1) N
      • Programming Language (0)
        • C++ (0)
        • C# (0)
      • Unity Engine (0)
      • 자격증 (3)
        • 게임국가기술자격검정 [한국콘텐츠진흥원] (3)
      • Coding Test | 코딩테스트 (0)
        • 프로그래머스 기초 (0)
        • 프로그래머스 입문 (0)
      • TIL (38) N
        • Boot Camp (32) N
      • Git & Github (1)
  • 링크

    • Youtube
    • GitHub
    • itch.io
    • Blog (En)
  • 공지사항

  • 인기 글

  • 태그

    Unreal engine
    코드카타
    기초
    게임개발
    프로그래밍
    Devlog
    Code Kata
    Programming
    til
    언리얼 엔진
    게임 개발
    Boot Camp
    C++
    UE
    내일배움캠프
    코드 카타
    cpp
    c
    Game Dev
    UE5
  • 최근 글

  • GitHub Youtube itch
  • hELLO · Designed By 정상우.v4.10.6
  • DevCol
    Actor와 Object | [언리얼 엔진 C++ (Unreal Engine C++)]
    상단으로

    티스토리툴바