언리얼 빌드 툴 (UnrealBuildTool)¶
빌드 (Build)¶
환경 변수 (EnvironmentVariables)¶
set UE4=C:\Work\UE_4.git
set Program=BlankProgram
set Platform=Win64
set Config=Debug 
배치 파일 (BatchFiles)¶
%UE4%\Engine\Build\BatchFiles\Build.bat %Program% %Platform% %Config%
직접 실행 (ManualCommandLine)¶
%UE4%\Engine\Binaries\DotNET\UnrealBuildTool.exe %Program% %Platform% %Config%
클린 (Clean)¶
배치 파일 (BatchFiles)¶
%UE4%\Engine\Build\BatchFiles\Clean.bat %Program% %Platform% %Config%
직접 실행 (ManualCommandLine)¶
%UE4%\Engine\Binaries\DotNET\UnrealBuildTool.exe -Clean %Program% %Platform% %Config%
프로젝트 프로그램 (ProjectProgram)¶
디렉토리 구조 (DirectoryStructure)¶
X/
 Source/
  Programs/
   HelloWorld/
    Private/
     Main.cpp
     Main.h
    Resources/Windows/
     HelloWorld.ico
    HelloWorld.Build.cs
    HelloWorld.Target.cs
 X.uproject
모듈 규칙 (ModuleRules)¶
using UnrealBuildTool;
public class HelloWorld : ModuleRules
{
    public HelloWorld(ReadOnlyTargetRules Target) : base(Target)
    {
        // OLD
        // PublicIncludePaths.Add("Runtime/Launch/Public");
        // PrivateIncludePaths.Add("Runtime/Launch/Private");
        // OLD_END
        // NEW
        PublicIncludePaths.Add(EngineDirectory + "/Source/" + "Runtime/Launch/Public");
        PrivateIncludePaths.Add(EngineDirectory + "/Source/" + "Runtime/Launch/Private");
        // NEW_END
        PrivateDependencyModuleNames.Add("Core");
        PrivateDependencyModuleNames.Add("Projects");
    }
}
비주얼 스튜디오 프로젝트 (VSProject)¶
엔진 프로그램은 $(ProjectName)이 적절하지만, 프로젝트 프로그램은 $(SolutionName)을 사용해야 언리얼 프로젝트 이름을 제대로 얻을 수 있음
VCProject.cs
        // Anonymous function that writes project configuration data
        private void WriteConfiguration(string ProjectName, ProjectConfigAndTargetCombination Combination, StringBuilder VCProjectFileContent, PlatformProjectGeneratorCollection PlatformProjectGenerators, StringBuilder VCUserFileContent)
        {
            UnrealTargetConfiguration Configuration = Combination.Configuration;
            PlatformProjectGenerator ProjGenerator = Combination.Platform != null ? PlatformProjectGenerators.GetPlatformProjectGenerator(Combination.Platform.Value, true) : null;
            string UProjectPath = "";
            if (IsForeignProject)
            {
                UProjectPath = "\"$(SolutionDir)$(ProjectName).uproject\"";
            }