Pawn 类

从这篇文章开始,我们制作一个坦克大战游戏。

目前我们还只是针对代码的学习,所以就不自己处理和游戏资产相关的事情了。如图 1 所示,我们直接使用准备好的工程项目。里面已经布置好了关卡,内容文件夹里有后续会用到的 Mesh 和特效等等。

图1 初始工程

游戏里会有两种角色,一种是玩家控制的坦克,另一种是炮塔,作为敌人。我们点击 工具 - 新建C++类,如图 2 所示,选择父类为 Pawn,命名为 BasePawn,作为坦克和炮塔的基类。

图2 Pawn 类

我们第一次接触 Pawn 类,之前接触的都是 Actor 类。Actor 是一切可以放在游戏中的对象的最基础的类。而 Pawn 继承自 Actor,它增加了控制器的概念,即 Pawn 是可以被玩家或 AI 控制的 Actor。Character 继承自 Pawn,它自带了碰撞体,并内置了动画系统的支持,即 Character 是自身准备好运动和碰撞的 Pawn。

查看生成的 Pawn 类模板,里面有 BeginPlay()Tick() 函数。这两个函数我们在 Actor 类里已经接触过。

Pawn 类里有个新接触的函数 SetupPlayerInputComponent()。它用于绑定输入,比如按哪个键调用哪个函数、哪个轴输入时调整哪个数值。后续我们会用到这个函数。