본캠프 77일차_언리얼엔진 게임개발 입문_.Build.cs 파일

YU YEON WON·2025년 11월 28일
post-thumbnail

1. 오늘 배운 내용(키워드)

오늘은 강의 중 Build.cs 파일 수정이 있어 해당 내용에 대해 정리하였다.
프로젝트명.Build.cs 파일


using UnrealBuildTool;

public class DedicatedX : ModuleRules
{
	public DedicatedX(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
	
		PublicDependencyModuleNames.AddRange(new string[] 
		{ 
			// Initial Dependencies
			"Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput",
		});

		PrivateDependencyModuleNames.AddRange(new string[] {  });

		PublicIncludePaths.AddRange(new string[] 
		{
		
			"DedicatedX", // 이게 없으면 헤더파일 인클루드시 경로를 찾지 못함.
		});
    }
}

이 파일은 언리얼엔진 모듈 빌드 설정 파일이라고 한다.
UnrealBuildTool(UBT)이 프로젝트를 빌드할 때 어떤 모듈을 포함해야 하는지, 어떤 경로를 참조해야 하는지를 정의한다.


  • public class DedicatedX : ModuleRules
    DedicatedX라는 모듈의 빌드 규칙을 정의하는 클래스
    UnrealEngine은 프로젝트를 여러 모듈로 나누어 관리하는데, 각 모듈마다 Build.cs 파일이 있어야 한다.

  • public DedicatedX(ReadOnlyTargetRules Target) : base(Target)
    생성자, 빌드 타겟에 따라 모듈 규칙을 초기화한다.
    base(Target)은 부모 클래스(ModuleRules)의 생성자를 호출하는 부분이다.

  • PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
    PCH(Precompiled Header, 미리 컴파일된 헤더) 사용 방식을 지정한다.
    빌드 속도를 최적화하기 위해 자주 쓰이는 헤더를 미리 컴파일해두는 방식이다.

  • PublicDependencyModuleNames.AddRange(...)
    이 모듈이 의존하는 다른 모듈들을 나열한다.
    즉, DedicatedX 모듈이 빌드될 때 아래 모듈들을 반드시 포함해야 한다.

    • "Core" → 엔진의 핵심 기능
    • "CoreUObject" → UObject 시스템 (언리얼의 객체 관리)
    • "Engine" → 게임 엔진 핵심 모듈
    • "InputCore" → 기본 입력 처리
    • "EnhancedInput" → 향상된 입력 시스템
  • PublicIncludePaths.AddRange(...)
    헤더 파일을 찾을 때 추가로 참조할 경로를 지정한다.
    "DedicatedX" 경로를 추가했는데, 이게 없으면 #include "DedicatedX/SomeHeader.h" 같은 헤더를 찾지 못한다.
    주석에 적힌 것처럼 헤더 인클루드 시 경로 문제를 해결하기 위해 필요하다.

2. 느낀점

멀티플레이 프로젝트 부터 해당 파일을 자주 열어보게 되는데 위와 같은 역할을 할 수 있다는 것을 알 수 있었다. 해당파일은 중요하여 모듈이 누락되거나 오타로 잘 못 입력되면 빌드가 되지 않거나 오류가 발생할 수 있다.

3. 다음주 학습할 것

경찰과 도둑 게임(개인프로젝트) 시작

profile
🕹️🎮🍱✈️📸 안녕하세요! 게임개발에 도전하고 있습니다!

0개의 댓글