Hello_Unreal 출력 및 엔진 분석

2025. 10. 1. 16:29·Unreal Project/Unreal Study

Hello Unreal 출력해 보기!

 

언리얼 엔진으로 Hello Unreal을 출력하기 위해서는 아래와 같은 단계가 필요하다. 

 

1.  C++로 언리얼 프로젝트 만들기 

2.  언리얼 에디터에서 New C++  Class를 만들어주기 

(※ 언리얼 에디터에서 클래스를 만들어 주어야 오류가 발생하지 않는다!

      물론 수동으로 만들어도 되지만 효율적으로 작업하려면 이 방법을 추천한다. 신경 써야 할 부분이 많기 때문이다.)

 ( 해당 사진은 Map&Modes를 들어가 GameInstance를 내가 만든 GameInstance로 수정하는 사진을 보여주는 그림이다.) 

 

글을 읽다 보면 의문점이 들 수 있다.

 

→ 왜? 언리얼 에디터에서만 C++ 클래스를 만들어야만 하는가? ( 나만 궁금해 할 수도..) 

 

● uprojcet에 연동된 모듈(Build.cs)에 자동 등록 된다는 점

    → 새로 만든 클래스가 어느 모듈에 포함될지를 자동으로 결정해 준다. 수동으로 만들면 Build.cs, ModuleName.h 등을

         손수 수정해야 한다. 

 

● UCLASS(), UPROPERTY(), UFUNCTION() 등이 적용된다는 점

    → 언리얼 리플렉션 시스템을 위해 헤더와 헤더 포함 순서, 필요한 include 등을 자동으로 설정해 준다는 것을 이야기한다. 

 

● Visual Studio 솔루션 (.sin) 파일에 자동 반영 

    → 새로 추가한 클래스가 솔루션에 자동 추가될 수 있도록 한다. 

 

● 블루프린트 연동 준비

    →  UCLASS, UPROPERTY 등을 포함한 클래스를 생성할 때 블루 프린트와 바로 연동 가능한 구조로 만들어 준다. 

 

여기까지가 왜 언리얼 에디터로 C++ 클래스를 만들어야만 하는가에 나의 개인적인 궁금증에 대한 답변이다. 

 

다음으로 순서로 나아가자. 

 

3. GameInstacne Class 생성 

 

 

4. Init 함수 만들기

 

갑자기 왜 init 함수를 만드는가? 

→ 이러한 궁금증은 바로 언리얼 엔진 파이프라인을 분석해 보면 알 수 있다. 

 

Unreal Game Engine Flow Chart

 

 

위의 그림을 보면 언리얼 엔진이 어떻게 동작하는지 파악할 수 있다.

우리는 Editor 기준으로 하므로 UGameInstance가 init() 함수를 호출할 때 Hello_Unreal을 출력해 보고자 한다. 

 

MyGameInstacne 헤더와 클래스

 

여기서 반드시 주의해야 할 점은 바로 Init()을 override을 하고 해당 함수 안에 Super::Init()을 추가해준다는 점이다. 

왜냐하면 해당 init() 함수가 언리얼 엔진의 GameInstance에 이미 구현되어 있기 때문에 부모 클래스의 init() 함수 또한 호출해야 

언리얼 엔진에 필요한 객체를 생성하고 정상적으로 동작한다.  

 

Tip)  cpp 파일만 내용이 변경되었을 때는 ( ctrl + alt + f11 )를 눌러 빌드하기 

        헤더 파일이 변경된 경우는 언리얼 에디터 종료 후 visual studio에서 자체적으로 빌드하기

 

 

해당 작업을 마무리하고 빌드가 완료되었다면 ctrl + f5 눌러 다시 언리얼 엔진 시작하기 

 

여기서 주의할 점이 cpp는 CP949로 인코딩이 기본값으로 설정되어 있기 때문에 위의 Log를 출력하려면 언리얼 인코딩 방식인 

UTF-8 / UTF-16 기반으로 바꿔주면 된다. 

 

UTF-8 유니코드 인코딩 방식으로 변경

 

 

해당 작업이 완료되었다면!

 

Hello_Unreal 로그 출력

 

다음과 같이 "안녕 언리얼" 이 로그에 출력됨을 볼 수 있다. 

 

 

'Unreal Project > Unreal Study' 카테고리의 다른 글

Unreal Weapon Socket 다루기  (0) 2025.10.27
Character Movement Component에 대하여 알아보  (0) 2025.10.22
Unreal Input Mapping 이란?  (0) 2025.10.17
Unreal의 GameMode 에 관하여 알아보자!  (0) 2025.10.15
Unreal Engine 코딩 규범에 대해 알아보자  (0) 2025.10.01
'Unreal Project/Unreal Study' 카테고리의 다른 글
  • Character Movement Component에 대하여 알아보
  • Unreal Input Mapping 이란?
  • Unreal의 GameMode 에 관하여 알아보자!
  • Unreal Engine 코딩 규범에 대해 알아보자
seonhwan2547
seonhwan2547
seonhwan2547 님의 블로그 입니다.
  • seonhwan2547
    seonhwan2547 님의 블로그
    seonhwan2547
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Unreal Project (17)
        • Khazan 모작 프로젝트 (2)
        • Unreal Study (10)
        • Blueprint (5)
      • Directx11 Project (11)
        • Thymesia 팀 프로젝트 (8)
        • Kaku Ancient Seal 개인 프로젝트 (2)
        • Thymesia Animation Tool 개발 (0)
      • Algorithm (6)
        • Binary_Search (2)
        • Greedy (1)
        • Dynamic Programming (1)
        • A-star (1)
      • Coding Test (31)
        • Brutal Force (2)
        • Sort (5)
        • DFS (3)
        • Binary_Search (4)
        • BFS (6)
        • Hash (2)
        • Dynamic Programming (6)
        • Greedy (1)
        • BackTracking (1)
        • Binary_Tree (1)
      • STL Container (1)
        • unorded_set (0)
        • priority_queue (1)
      • C++ 공부 및 몰랐던점 (8)
        • Smart pointer (1)
      • Visual Studio 설정관련 공부 (1)
      • Console Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 블로그 소개
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Unreal Engine
    blueprint
    Unreal
    GameProgramming
    CodingTest
    hash
    Game Programming
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
seonhwan2547
Hello_Unreal 출력 및 엔진 분석