1.這個工程須要的類:ui
新建一個C++工程文件,個人Pawn繼承自CharacterPawn,Controller繼承自PlayerCharacter,GameMode就繼承自GameMode。繼承
在這裏我使用TableData創建本身的表格,TableData能夠導入CSV文件,填寫角色的如下參數:遊戲
Health,MaxHealth,DPS...在C++代碼中新建一個類繼承自Object。咱們爲了在BP中方便定義,引入UE4爲咱們提供的宏,將他的頭文件轉爲結構體ci
USTRUCT(BlueprintType)get
struct FCharacterClassInfo:public FTableRowBasestring
{it
GENERATED_USTRUCT_BODY()io
UPROPERTY(BlueprintReadWrite,EditAnywhere,Category="ClassInfo")編譯
int32 Health;class
//...
TArray<int32> LearnedAbilities;
}
2.控制戰鬥的類
以前說過這是一款回合制的遊戲,不可避免的講到回合制。咱們新建一個回合制類CombatEngine用來專門處理回合制。
在戰鬥過程當中玩家依據這麼幾個戰鬥階段輪詢狀態
enum class CombatPhase:unit8
{
CP_Decision,
CP_Action,
CP_Victory,
CP_GameOver,
};
其實這本教材中的全部筆墨都在這一部分。咱們暫且跳過這一部分,畢竟是無聊的回合制遊戲。將引擎的其餘環節瞭解了專門預留一節看一下大部分的回合制遊戲的製做方式吧。
3.處理戰鬥UI的類
在UI的使用上,使用了UMG,Slate和SlateCore。
做爲虛幻引擎的組件,每一個工程文件均可以在工程解決方案中找到(YourProject.Build.CS的文件)
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" ,"UMG","Slate","SlateCore"}); //這裏在最後添加
此外,在你的遊戲.h中也得添加如下頭文件.
#include "Runtime/UMG/Public/UMG.h" #include "Runtime/UMG/Public/UMGStyle.h" #include "Runtime/UMG/Public/Slate/SObjectWidget.h" #include "Runtime/UMG/Public/IUMGModule.h" #include "Runtime/UMG/Public/Blueprint/UserWidget.h" 編譯以後即可以進行Widget的建立了. 新建一個類繼承自UserWidget。此後的工做內容都會在BP中進行工做。此次Wrap up。