ShovelingLife
A Game Programmer
ShovelingLife
전체 방문자
오늘
어제
  • 분류 전체보기 (1068) N
    • 그래픽스 (57)
      • 공통 (19)
      • 수학 물리 (22)
      • OpenGL & Vulkan (1)
      • DirectX (14)
    • 게임엔진 (181) N
      • Unreal (69)
      • Unity (101) N
      • Cocos2D-X (3)
      • 개인 플젝 (8)
    • 코딩테스트 (221)
      • 공통 (7)
      • 프로그래머스 (22)
      • 백준 (162)
      • LeetCode (19)
      • HackerRank (2)
      • 코딩테스트 알고리즘 (8)
    • CS (235)
      • 공통 (21)
      • 네트워크 (44)
      • OS & 하드웨어 (55)
      • 자료구조 & 알고리즘 (98)
      • 디자인패턴 (6)
      • UML (4)
      • 데이터베이스 (7)
    • 프로그래밍 언어 (346)
      • C++ (167)
      • C# (88)
      • Java (9)
      • Python (33)
      • SQL (30)
      • JavaScript (8)
      • React (7)
    • 그 외 (9)
      • Math (5)
      • 일상 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Source Code 좌측 상단에 복사 버튼 추가 완료
  • 언리얼 엔진 C++ 빌드시간 단축 꿀팁
  • 게임 업계 코딩테스트 관련
  • 1인칭 시점으로 써내려가는 글들

인기 글

태그

  • 언리얼
  • 배열
  • 클래스
  • 문자열
  • Unity
  • C
  • 유니티
  • 함수
  • 포인터
  • C++
  • 파이썬
  • 오블완
  • 티스토리챌린지
  • string
  • 백준
  • c#
  • 알고리즘
  • 프로그래머스
  • SQL
  • 그래픽스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShovelingLife

A Game Programmer

[Unreal] C++ 버전 변경(C++ 20기능 사용) 방법과 모듈
게임엔진/Unreal

[Unreal] C++ 버전 변경(C++ 20기능 사용) 방법과 모듈

2022. 7. 24. 17:38

언리얼에선 디버그 속성 통해 전체 .sln 파일에 대해 언어를 지정 할 수가 없다. UE 5 기준 전체 언리얼 모듈들은 C++ 17버전으로 작성 되어있다, 따라서 20 버전으로 업그레이드 한 후 참조할 때 에러가 날 수 있다.

 

각 모듈 Build.cs 파일 내에

// CppStandardVersion.Latest 즉 최신 버전 설정 시 17 버전으로 설정 됨.
CppStandard = CppStandardVersion.Cpp17;

// C++ 20 기능 사용하고자 할 때 아래와 같이 작성하면 된다.
CppStandard = CppStandardVersion.Cpp20;

아래는 현재 사용하고 있는 직접 구현한 모듈들이다. Objects 같은 경우엔 탄알(파티클 이펙트) Niagara System을 사용해야 하기 때문에 (Niagara 모듈 참조) 따라서 Objects만 제외하고 다른 모듈들을 cpp 20버전으로 설정했다.

Objects.Build.cs

using UnrealBuildTool;

public class Objects : ModuleRules
{
    public Objects(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
        CppStandard = CppStandardVersion.Cpp17; 

        PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "Niagara" });
        PrivateDependencyModuleNames.AddRange(new string[] { "모듈 이름" });
    }
}

Objects.h

#pragma once

#include "CoreMinimal.h"

Objects.cpp

#include "Objects.h"
#include "Modules/ModuleManager.h"

IMPLEMENT_MODULE(FDefaultModuleImpl, Objects);
저작자표시 (새창열림)

'게임엔진 > Unreal' 카테고리의 다른 글

[Unreal] 문자열 변환 - FName, FText, FString  (0) 2022.07.31
[Unreal] FVector과 FRotator간 변환  (0) 2022.07.31
[Unreal] 마우스 방향을 따라가는 총기 애니메이션 (Aim Offset)  (0) 2022.07.21
[Unreal] RootComponent 루트 컴포넌트  (0) 2022.07.17
[Unreal] RadialForceComponent 하중을 가하는 컴포넌트  (0) 2022.07.17
    '게임엔진/Unreal' 카테고리의 다른 글
    • [Unreal] 문자열 변환 - FName, FText, FString
    • [Unreal] FVector과 FRotator간 변환
    • [Unreal] 마우스 방향을 따라가는 총기 애니메이션 (Aim Offset)
    • [Unreal] RootComponent 루트 컴포넌트
    ShovelingLife
    ShovelingLife
    Main skill stack => Unity C# / Unreal C++ Studying Front / BackEnd, Java Python

    티스토리툴바