UE4新建人物和地图模式

在 UE4 中,每一个世界(World)有多个 Level(关卡),而每个关卡又可以设定自己的 GameMode(游戏模式),从而控制游戏的玩法。

新建 GameMode

  1. 打开 UE4 编辑器,我们点击左下角的“显示/隐藏资源面板”。

ue4 gamemode生命周期 ue4游戏模式_ue4 gamemode生命周期

  1. 点击 “C++类” ,选中"GameProject" 文件夹,在右边的“资源面板”右键点击 “新建C++类”。

ue4 gamemode生命周期 ue4游戏模式_#include_02

  1. 选中“GameModeBase”(游戏模式),点击“下一步”。

ue4 gamemode生命周期 ue4游戏模式_构造函数_03

  1. 更改我们的类名为:PlayingGameModeBase,说明是游戏中的 GameMode,选择右边的“公有”,这个选项会把.h.cpp文件分开,方便我们查看代码。更改头文件的存放路径,建议路径和我的保持一致,最后点击“创建类”。

ue4 gamemode生命周期 ue4游戏模式_构造函数_04

  1. 打开 VS 编辑器,可以看到我们刚刚创建的.h.cpp文件。

ue4 gamemode生命周期 ue4游戏模式_#include_05

新建角色

  1. 我们回到 UE4 编辑器,使用同样的方法去创建我们的 Character 类,Character 类是我们的角色类,也是我们玩家控制的角色,它里面自带了角色移动组件。

ue4 gamemode生命周期 ue4游戏模式_构造函数_06

  1. 更改类名为 PlayingCharacter,同样放在“/Playing”文件夹下。

ue4 gamemode生命周期 ue4游戏模式_#include_07

  1. 创建成功后 VS 编辑器如下:

ue4 gamemode生命周期 ue4游戏模式_ue4 gamemode生命周期_08

新建控制器(PlayerController)

  1. PlayerController 代表着我们玩家,我们玩家通过这个控制器去控制我们的角色(Character),它里面有自带的按键输入,是否显示鼠标,是否开启点击事件之类的功能。

ue4 gamemode生命周期 ue4游戏模式_构造函数_09

  1. 更改类名为 PlayingController,同样放在“/Playing”文件夹下。

ue4 gamemode生命周期 ue4游戏模式_头文件_10

  1. 创建完成后 VS 编辑器如下:

ue4 gamemode生命周期 ue4游戏模式_头文件_11

这样我们就创建了三个类,但是也只是创建出来了而已,下一节将会配置这三个类到游戏中。

UE4设置默认游戏模式和关卡

  1. 首先我们回到 VS 编辑器,在“内容浏览器”里面选择“内容(Content)”:

ue4 gamemode生命周期 ue4游戏模式_构造函数_12

  1. 新建一个存放资源的文件夹名为“Assest”,然后在“Assest”目录下创建一个“Maps”文件夹,表示存放我们的地图。

ue4 gamemode生命周期 ue4游戏模式_构造函数_13

  1. 点击 “保存关卡”:

ue4 gamemode生命周期 ue4游戏模式_#include_14

  1. 点击保存之后会弹出一个窗口,我们把关卡的名字改成“NoviceMap”,并把它存放到我们新建的“Maps”文件夹下。

ue4 gamemode生命周期 ue4游戏模式_构造函数_15

保存成功后“资源浏览器”就会出现你刚刚保存的地图:

ue4 gamemode生命周期 ue4游戏模式_ue4 gamemode生命周期_16

  1. 回到 UE4 编辑器,点击左上角“编辑”,然后打开“项目设置”:

ue4 gamemode生命周期 ue4游戏模式_头文件_17

  1. 选择“地图&模式”:

ue4 gamemode生命周期 ue4游戏模式_#include_18

  1. 在右边的窗口把“DefaultGameMode(默认游戏模式)”设置成我们创建的“PlayingGameMode”类,把下面的“EditorStartupMap(编辑器启动地图)”和“GameDefaultMap(游戏默认地图)”设置成我们保存的“NoviceMap”。

ue4 gamemode生命周期 ue4游戏模式_构造函数_19

设置好了之后,每次打开编辑器点击“Play(播放)”都会默认打开这个地图和这个游戏模式。

ue4 gamemode生命周期 ue4游戏模式_构造函数_20

UE4设置默认角色和控制器

这一节我们来设置默认的角色和控制器和默认地图不一样,默认角色和控制器需要设置在 GameMode 里面。

  1. 打开 VS 编辑器, 打开“APlayingGameModeBase.h”文件,声明一个构造函数:

ue4 gamemode生命周期 ue4游戏模式_构造函数_21

  1. 在“APlayingGameModeBase.cpp”文件中创建构造函数实现,然后在 #include “PlayingGameModeBase.h” 头文件的下面添加 #include “PlayingController.h” 和 #include “PlayingCharacter.h” 头文件。

ue4 gamemode生命周期 ue4游戏模式_构造函数_22

  1. 在构造函数中添加以下代码:

ue4 gamemode生命周期 ue4游戏模式_ue4 gamemode生命周期_23

对代码的说明:

  • DefaultPawnClass 是我们进入地图的时候默认控制的角色;
  • PlayerControllerClass 是我们进入地图的时候默认的角色控制器。

这样,我们就设置好了默认角色和默认控制器.然后我们编译一下,编译好了之后我们在 UE4 编辑器里面点击Play,我们会发现视口被锁定了无法移动,那是因为我们还没有写视角和移动的逻辑,下一节将会实现这些功能。

ue4 gamemode生命周期 ue4游戏模式_头文件_24