언리얼 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를 할당해주면 된다.