언리얼 C++ 프로그래밍을 위한 개발 환경 설정하자.

 

 

  Hello Unreal

 

인프런 이득우님의 '언리얼 프로그래밍 Part1 - 언리얼 C++의 이해' 강의를 참고하였습니다. 
😎 [이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해] 강의 들으러 가기!

 

 

 

 


 

 

언리얼 엔진 프로그래밍

 


 

 

언리얼 엔진 설치 및 개발 환경 설정

 

엔진 설치

  • Unreal Engine의 다양한 버전 중 하나 설치
  • Epic Games Launcher로 설치하는게 일반적
  • Epic Games의 Github에서 소스코드를 다운받아서 빌드하는 방법도 있음
    • Unreal Engine 5.3 기준 250GB 넘고 빌드하는데 2시간 이상 걸림(CPU 사양에 따라 많이 달라짐)

 

IDE 연결

  • Visual Studio
  • Rider
  • 라이센스가 있으면 Rider를 쓰면 좋다. (하지만 난 라이센스도 없고 학생도 아니다..ㅠㅠ)

 

Visual Studio의 언어 English로 변경
오류 옵션 체크 해제
Visual Studio 빌드 타겟 바 늘리기

 

 

https://vlasovstudio.com/visual-commander/

 

Visual Commander - Modern alternative to Visual Studio macros

Visual Commander The freemium Visual Commander extension lets you automate repetitive tasks in Visual Studio 2022/2019/2017 and SSMS 17/2016. You can reuse existing Visual Studio macros from previous versions of the IDE and create new commands and extensio

vlasovstudio.com


 

 

컴파일 방법

 

.h 헤더에 변경사항이 생긴 경우 (설계 변경)

  • 언리얼 에디터를 끄고 Visual Studio에서 컴파일
  • 빌드 후 Visual Studio에서 디버깅 없이 Run하거나 (단축키 Ctrl + F5), 에디터 다시 켜기

 

.cpp 소스 파일에만 변경사항이 생긴 경우 (구현 변경)

  • live coding 으로 컴파일 ( 단축키 Ctrl + Alt + F11 ).
    (개인적으로는 live coding 옵션을 끄고 작업한다.. 코드가 업데이트 되는게 왔다갔다라 끄는게 속 편하다...) 
  • Visual Studio에서 수동으로 클래스를 추가하지 말 것(이라 말하지만 해도 된다. 여러개의 클래스 복사해올때는 그냥 수동으로 추가하는게 낫다. .sln 파일 다시 Generate하고 빌드하면 문제되지 않는다. 겁먹지 말자)

 

 

UE_LOG 출력 방법

 

UE_LOG는 로그 메시지를 출력하기 위해 사용하는 매크로다.

UE_LOG는 ' 3개의 인자 + 1개의 가변 인자 '가 존재한다.

  •  로그 카테고리: 분류별로 확인 가능하다.
  •  로그 출력: 일반적인 Log,  Warning, Error 가 있다. 각각은 로그 창에서 다른 색상으로 출력된다.
  •  포맷 지정:  printf 함수와 같이 포맷 문자열과 해당하는 인자를 제공하여 로그 메시지 출력할 수 있다. 포맷 문자열 내에서 %s, %d 등의 형식 지정자를 사용하여 인자의 값을 포함시켜 출력할 수 있다. 유니코드를 잘 처리할 수 있도록 TEXT 라는 문자열 매크로로 문자열을 다룬다.

 

UE_LOG(LogTemp, Log, TEXT("%s"), TEXT("Hello Unreal!"));

 

 

언리얼 프린트는 작성이 너무 귀찮아 나중에 helper 클래스를 직접 만들어 사용하는게 편하다.


 

GameInstance

 

GameInstance는 프로젝트 당 하나씩 존재한다.

 

게임 전체의 수명 동안 존재하는 싱글톤 인스턴스이다. 

 

MyGameInstance를 생성하여 사용하려면, 클래스 생성 후, Project Settings - Map & Mode에서 작성한 MyGameInstance를 할당해주면 된다.