UE4 整体构成及使用简介

ABSTRACT

个人学习笔记。用 MVC 视角梳理 UE4 游戏框架的分层职责:Pawn/Controller/PlayerState 的表现-逻辑-数据拆分,关卡蓝图/GameMode/GameState 的静态-动态-数据拆分,以及 Component 应承载「与特定游戏无关」逻辑的使用约定。

核心要点

  • UObject 是「全能基类」:反射、序列化、网络同步集于一身,功能全但容易让人迷惑。
  • 逻辑不必都堆在 Pawn 里:把逻辑抽出是 Controller,把数据抽出是 PlayerState——保持明确的 MVC 层次。
  • World/Level 侧同样三分:静态关卡逻辑归关卡蓝图,动态玩法规则归 GameMode,游戏数据归 GameState。
  • 三层职责口诀:View 只做表现;Logic(GameMode/Controller)尽量通用、负责特定模块;Data(GameState/PlayerState)只放纯数据,为独立变化与网络同步而分离。
  • Component 的定位:实现与特定游戏无关、换个游戏也能用的逻辑;不要把下层 Actor 内部功能或游戏玩法塞进合作类。
  • GameMode 的关键约束:一旦联机,GameMode 只存在于 Server,Client 没有 GameMode——因此 GameMode 不能承担任何客户端工作。
  • GameState 与 PlayerState 别混:前者表示「一场游戏」的数据,后者表示「一个 Controller(玩家)」的数据。
  • 只有人类玩家关心摄像机视角:人类玩家操作的 Pawn 才需要使用 Camera Component。
  • Actor 组合好后理论上可在任何 Level 复用;GameMode 也可与多个不同 World/Level 组合,像切换比赛方式一样切换游戏目的。

关键实体与概念

UObject、Pawn、Controller、PlayerState、GameMode、GameState、关卡蓝图、Component、MVC、服务器权威

关联概念

来源回溯

  • 原始文件:raw/gamedev/ue4-整体构成及使用简介.md(evernote/FW-游戏3研发技术 导入)

时效性评估

  • 仍有效:Pawn/Controller/PlayerState 与 GameMode/GameState 的职责划分、「GameMode 只在服务器」的约束,在 UE4/UE5 至今未变,是上手 Unreal 游戏框架的正确心智模型。
  • 已过时:无明显过时内容;UE5 新增的 ModularGameplay/GameFeature 插件化能力是在这套骨架上的扩展,不改变分层原则。