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。