UE 中 GamePlay 框架的角色

225 阅读3分钟

  虚幻引擎为使用者抽象出了多种角色,在开发过程中需要按照引擎给定的角色进行游戏设定编写。约束开发者,但是加强了开发的稳定性。抽象出的角色有:

  • 游戏模式(GameMode
  • 游戏状态(GameState
  • 玩家(DefaultPawn
  • 玩家状态(PlayerState
  • 玩家控制器(PlayerController
  • 用户界面(HUD

  抽象的角色,在游戏中扮演不同的身份,从事不同的工作任务。

GameMode

  主要负责游戏重点相关信息(规则),包括:

  • 出现的玩家和观众数量、允许的玩家和最大数量。
  • 玩家进入游戏的方式,可包含选择生成地点和其它生成 / 重生薪给的规则。
  • 游戏是否可以暂停,如何处理游戏暂停。
  • 关卡之间的过渡,包括游戏是否以动画模式开场。

  GameMode 主要任务就是构建和实现游戏的规则,并将游戏中的其他角色进行注册:例如默认的玩家、HUD类、玩家控制器、观众类、GameState 类, PlayerState 类。它仅存在于服务器上。它通常在游戏过程中不会有太多数据改变,并且它一定不应该具有客户端需要的临时数据。

  虚幻认为一个 Level 是一个世界,每个世界都应该有自己的 GameMode 。如果没有自己设置,虚幻会默认生成当前关卡的 GameMode

GameState

  GameState 主要负责记录游戏中的共享信息,游戏的信息可以通过 GameState 进行存储和同步。包括:

  • 游戏已运行的时间(包括本地玩家和加入前的运行时间)。
  • 每个个体玩家加入游戏的时间和玩家的当前状态。
  • 当前 GameMode 的基类。
  • 游戏是否已开始。

  GameState 是虚幻中为我们进行游戏信息记录的载体。包括关联玩家的列表、分数、象棋游戏中的想起位置或者在开放世界游戏中完成的任务列表。GameState 存在于服务器和所有客户端上,可以自由地进行复制来保持同步。

Defult Pawn

  默认玩家,任何游戏都应当存在一个默认地玩家。只有继承在 Pawn 的对象才能成为默认玩家。默认玩家需要通过控制器进行控制,它们可以轻松地接受输入,并且可以执行各种各样的类似于玩家的动作。

Player Controller

  控制器,负责管理玩家的 Actor 类型对象。主要目的是将真实玩家的意愿进行收集,最后汇总转投给虚拟角色。这个过程就是游戏中的玩家交互过程。PlayerControllerPawn 和控制它的玩家间的接口。PlayerController 本质上代表了人类玩家的医院。它的父类是 Controller ,所有能够被控制的 Pawn 必须用 Controller 控制。

Player State

  PlayerState 是游戏中的一个参与者的状态,比如人类玩家或者模拟人类玩家的机器人。作为游戏一部分存在的非人类玩家(AI)没有 PlayerStatePlayerState 中适合包含的示例数据有:

  • 玩家姓名。
  • 分数。
  • 多人竞技场比赛中的级别。
  • 夺旗模式游戏中玩家当前是否正占领旗帜。
  • 所有玩家的 PlayerState 在所有机器上都存在,并且可以自由地进行复制来保持同步。

HUD

  “平头显示信息”,二维的,展示在屏幕上的。如:生命值、弹药量、枪支准星等。每个PlayerController 通常都具有一些这样的信息。

  HUD 是用来进行简单 UI 绘制的入口,一般在游戏开发中均更换为 UMG 为用户界面开发的主要手段。