先决条件页面
在阅读本页面前应对以下页面有所了解,如尚不了解,则请先浏览以下页面。
上图是该部分完成后的效果。
目标
此部分旨在说明如何实现第一人称射击游戏中的角色。
目的
完成此部分教程后您将学会:
制作新角色
设置轴映射
实现角色移动函数
实现鼠标摄像机控制
实现角色跳跃
为角色添加模型
更改摄像机视图
为角色添加第一人称模型
2.1 - 制作新角色
在此步中,我们将使用引擎的 Character 基类制作一个新角色。Character 类(派生自 Pawn 类)内置有双足移动功能,如行走、奔跑、跳跃。:
添加 Character 类
可手动添加 *.h 和 *.cpp 文件到 Visual Studio 解决方案,较好的做法是使用 C++ 类向导将新类添加到项目。使用 C++ 类向导后,引擎将创建头和源模板,用于设置虚幻引擎专属的宏。
1.在 File 菜单中,选择 New C++ Class... 选择新的父类。
2.Choose Parent Class 菜单将打开。向下滚动,将 Character 选为父类并点击 Next。
3.将新建的类命名为“FPSCharacter”,然后点击 Create。
创建 FPSCharacter 类后,即可切换到 Visual Studio,为新建的类添加代码。FPSCharacter.h 和 FPSCharacter.cpp 将打开,虚幻引擎将自动编译并加载新类的代码。
创建角色类
1.在 Solution Explorer 中展开 FPSProject > Source > FPSProject。
2.双击 FPSCharacter.cpp 打开 FPSCharacter 类的实现文件。
3.在 BeginPlay() 函数中添加以下代码行,验证使用的是 FPSCharacter 类。
if (GEngine)
{
// 显示调试信息五秒。-1“键”值(首个参数)说明我们无需更新或刷新此消息。
GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("We are using FPSCharacter."));
}
4.FPSCharacter.cpp 应与以下代码相似:
// 在 Project Settings 的 Description 页面填入版权声明。
#include "FPSProject.h"
#include "FPSCharacter.h"
// 设置默认值
AFPSCharacter::AFPSCharacter()
{
// 设置此角色每帧调用 Tick()。不需要时可将此关闭,以提高性能。
PrimaryActorTick.bCanEverTick = true;
}
// 游戏开始时或生成时调用
void AFPSCharacter::BeginPlay()
{
Super::BeginPlay();
if (GEngine)
{
// 显示调试信息五秒。-1“键”值(首个参数)说明我们无需更新或刷新此消息。
GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("We are using FPSCharacter."));
}
}
// 每帧调用
void AFPSCharacter::Tick( float DeltaTime )
{
Super::Tick( DeltaTime );
}
// 调用后将功能绑定到输入
void AFPSCharacter::SetupPlayerInputComponent(class UInputComponent* InputComponent)
{
Super::SetupPlayerInputComponent(InputComponent);
}
5.在 Visual Studio 中保存 FPSCharacter CPP 文件。
6.在 Solution Explorer 中找到 FPSProject。
7.迄今为止,您便已使用编辑器的 Build 按钮编译项目。在这步中,您将使用 Visual Studio 的构建功能编译代码。编译代码的方法:在 Visual Studio 中右键单击 FPSProject,选择 Build 编译项目。
8.构建完成后,打开虚幻编辑器验证新编译的 FPSCharacter 类在 Content Browser 中可见。
将 CPP FPS Character 类扩展为蓝图
现在即可将 CPP FPS Character 类扩展为蓝图。在 C++和蓝图 参考页面中可了解 C++ 类扩展为蓝图的更多内容。
1.右键单击 FPSCharacter 类打开 C++ Class Actions 菜单。
2.点击 Create Blueprint class based on FPSCharacter 打开 Add Blueprint Class 对话菜单。
3.将新蓝图类命名为“BP_FPSCharacter”,选择蓝图文件夹,然后点击 Create Blueprint Class 按钮。
4.现在 Blueprints 文件夹中便拥有了一个新建的 BP_FPSCharacter 蓝图类。
5.关闭蓝图编辑器之前须保存 BP_FPSCharacter 蓝图。
设置默认 Pawn 类
将新建游戏模式成功扩展为蓝图后,此步骤中我们需要设置项目将 BP_FPSCharacter 用作默认 Pawn。
1.在 Edit 菜单中点击 Project Settings。
2.在 Project Settings 标签左侧的 Project 标题下点击 Maps & Modes。
3.在 Default Pawn 下拉菜单中选择 BP_FPSCharacter。
4.关闭 Project Settings 菜单。
5.点击关卡编辑器工具栏中的 Play 按钮。“We are using FPSCharacter.”将以红色文本在视口左上角的“Hello World, this is FPSGameMode!”下方显示五秒。
如您无法移动,即意味着 FPSCharacter 已正确用作 Pawn!新建角色尚未包含移动功能键,因此无法在关卡中移动。