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 插件化能力是在这套骨架上的扩展,不改变分层原则。