游戏框架
游戏 由 游戏模式(GameMode) 和 游戏状态(GameState) 所组成
加入游戏的 人类玩家 与 玩家控制器(PlayerController) 相关联
玩家控制器允许玩家在游戏中拥有 HUD,这样他们就能在关卡中拥有物理代表
玩家控制器还向玩家提供 输入控制(Input) 抬头显示
以及用于处理摄像机视图的玩家摄像机管理器
游戏模式
在 世界场景设置 中可以设置 游戏模式 以及其他对象
游戏的基础规则应该存放在游戏模式(GameMode)中,游戏模式仅存在于服务器上,他通常存储客户端不需要明确知道的游戏信息
例如,在我们的游戏中,每隔一段按时间就会有一次空投补给,决定空投的时间,计算空投的位置以及生成空投的内容,这些逻辑就应该写在 游戏模式 中。客户端不关注这些内容是怎么生成的,当服务端计算完成后通知客户端即可
游戏状态
游戏状态类 存放与整个游戏有关的信息,存放在服务器和客户端上,因此,服务器可以在 游戏状态类 上使用复制变量让所有客户端保持最新的数据
例如,在我们的游戏中剩余玩家数量,安全区信息等状态,就应该在 游戏状态类 上保存
Pawn
Pawn是玩家在世界中的物理象征
运行游戏,在世界大纲中找到默认的Pawn
在细节面板中可以看到 默认的Pawn有移动组件(MovementComponent) 和 碰撞组件(CollisionComponent)
通过WASD键可以移动,当碰到物体时会发生碰撞效果
Character
在我们的游戏中,玩家角色是需要被显示出来的,而且是具有人型形态特征的
使用Character对象取代Pawn
创建一个Character,Character继承自Pawn对象
Character对象中默认带有角色移动组件,可以实现在场景中行走、跑动、跳跃、飞行和游泳功能
还有胶囊体组件,表示角色的物理尺寸
还有骨骼模型组件,显示角色骨骼模型,并且可以使用骨骼的高级动画
玩家控制器
玩家控制器用于控制角色的行为,在其中处理用户的输入,然后将命令发送给Pawn,玩家控制器在游戏中一直存在
HUD
HUD指的是在屏幕上覆盖的状态和信息,HUD的目的是告知玩家当前游戏状态,例如分数、生命值、游戏剩余时间等,类似这些信息通常是不可以交互的,还有一些信息,例如背包界面是可以被交互的