4 - Pawn类和玩家控制器类

希望我能尽快入门UE5!本章将介绍虚幻引擎C++编程的相关内容,在本篇中我将学到:

  • Pawn类的基本概念;
  • 玩家控制器类的基本概念;
  • 如何设置游戏模式,玩家控制器和Pawn类;

通过新创建的空白C++模板来学习。

虚幻引擎Pawn类

在虚幻引擎中,Pawn类是最基本的Actor类,它形象地代表游戏中的玩家或AI。这个类中的代码与游戏实体相关,包括交互、移动和能力逻辑。玩家在游戏中的任何时候都只能拥有一个Pawn。此外,玩家可以在游戏过程中放弃一个Pawn而控制另一个Pawn。

DefaultPawn类

在Pawn类的基础上,该类包含了允许它在世界中移动的附加代码。

SpectatorPawn类

有些游戏提供了观赛功能,使得玩家能够通过摄像头观看其他玩家游玩。有些游戏还提供了回放功能,允许观看过去或游戏中任意时刻发生的特定游戏行为。

这是一种特殊类型的Pawn,提供了观看游戏的示例功能。它包含了执行此操作所需的所有基本工具,例如Spectator Pawn Movement组件。

玩家控制器类

玩家控制器类可以视为代表玩家的实体,是Pawn的核心。玩家控制器接收来自用户的输入,然后将其传递给Pawn和其他类,以便玩家与游戏进行交互。

在处理该类时,需要注意以下几点:

  • 与Pawn类不同,在一个关卡中只能由一个玩家控制器类。
  • 玩家控制器类在整个游戏中持续存在,而Pawn可能不会(例如玩家角色的死亡与重生)。
  • Pawn是临时的,玩家控制器是永久的,开发人员需要记住应该将哪些代码添加到正确的类中。

实操练习

创建蓝图类

首先,我们先创建一个基于游戏模式类GameMode的蓝图类:

然后再创建基于Pawn类和基于PlayerController类的蓝图类:

修改蓝图类

打开游戏模式蓝图类,并切换到“事件图表”选项卡。给BeginPlay事件添加一个Print String节点,参数是My gamemode has started!。最后编译蓝图。

同理,也给剩余两个蓝图添加相应输出字符串。

应用蓝图类

修改完蓝图类后,就能应用它们了。在关卡编辑器中,点击右侧设置,找到世界场景设置选项。将游戏模式相关参数修改成我们编写的蓝图类:

最终上面的游戏模式和相关参数类被我们指定,开始执行我们写的蓝图代码:

参考资料

  • 《UE5游戏开发完全学习教程-C++篇》