При создании проекта по умолчанию создаются два таргета: Game и Editor
Editor Target
// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.Collections.Generic;
public class TPSEditorTarget : TargetRules
{
public TPSEditorTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Editor;
DefaultBuildSettings = BuildSettingsVersion.V2;
ExtraModuleNames.Add("TPS");
}
}
Game Target
// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.Collections.Generic;
public class TPSTarget : TargetRules
{
public TPSTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Game;
DefaultBuildSettings = BuildSettingsVersion.V2;
ExtraModuleNames.Add("TPS");
}
}
Шаблон таргета имеет вид:
%COPYRIGHT_LINE%
using UnrealBuildTool;
using System.Collections.Generic;
public class %MODULE_NAME%%TARGET_TYPE%Target : TargetRules
{
public %MODULE_NAME%%TARGET_TYPE%Target(TargetInfo Target) : base(Target)
{
Type = TargetType.%TARGET_TYPE%;
DefaultBuildSettings = BuildSettingsVersion.V2;
ExtraModuleNames.AddRange( new string[] { %EXTRA_MODULE_NAMES% } );
}
}
Параметр
Описание
COPYRIGHT_LINE
комментарий копирайта
MODULE_NAME
имя модуля, по сути имя вашего проекта
TARGET_TYPE
тип таргета (Editor, Game, Client, Server)
EXTRA_MODULE_NAMES
дополнительные имена модулей,
в простейшем случае модуль всего один — ваш проект
Для сборки сервера и клиента необходимо добавить дополнительные C# файлы в корень проекта в директорию Source.
Client Target
// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.Collections.Generic;
public class TPSClientTarget : TargetRules
{
public TPSClientTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Client;
DefaultBuildSettings = BuildSettingsVersion.V2;
ExtraModuleNames.AddRange(new string[] { "TPS" });
}
}
Server Target
// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.Collections.Generic;
public class TPSServerTarget : TargetRules
{
public TPSServerTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Server;
DefaultBuildSettings = BuildSettingsVersion.V2;
ExtraModuleNames.AddRange(new string[] { "TPS" });
}
}