UE核心架构概念

核心概念概览

概念 英文 作用/特点 网络相关
GameInstance GameInstance 全局对象,跨关卡存在,管理 Session/玩家信息/存档 不自动复制;Run on Server 可通过 PlayerController 发起
GameMode GameMode 只在 Server 上存在,管理游戏规则、胜负条件、Spawn Server 权威,客户端没有实例
GameState GameState 所有客户端都有,存储游戏状态(比分、时间等共享信息) 会复制到客户端(Replicate)
PlayerController PlayerController 控制玩家输入和 UI,客户端和 Server 都有实例 Server 版本有 Authority,可以操作 GameMode、Session
PlayerState PlayerState 存储玩家相关状态(名字、分数、生命值) 会复制给客户端,适合显示在 UI 上
Pawn / Character Pawn/Character 玩家实体或 AI,客户端和服务器都有实例 复制位置/动作/变量可选,控制移动/攻击
Actor Actor 基础物体类,关卡里所有对象都是 Actor 或子类 可设置 Replicate,决定是否同步到客户端
Level / Level Blueprint Level 场景地图,关卡蓝图控制关卡事件 Level Blueprint 默认是本地,不复制,通常做本地逻辑
Subsystem Subsystem 类似模块化系统,分为 Engine / GameInstance / LocalPlayer 可管理全局功能(比如 OnlineSubsystem)

1️⃣ GameInstance

  • 类名UGameInstance

  • 路径Engine/Source/Runtime/Engine/Classes/Engine/GameInstance.h

  • 实现Engine/Source/Runtime/Engine/Private/GameInstance.cpp

  • 关键点

    • Init():游戏启动初始化

    • StartGameInstance():创建子系统、加载地图前调用

    • 可以管理 OnlineSubsystem、Session、全局数据


2️⃣ GameMode / GameModeBase

  • 类名

    • AGameModeBase(基础类,不包含 PlayerController 生成逻辑)

    • AGameMode(常用,继承自 GameModeBase,处理玩家生成、规则等)

  • 路径

    • Engine/Source/Runtime/Engine/Classes/GameFramework/GameModeBase.h

    • Engine/Source/Runtime/Engine/Private/GameModeBase.cpp

    • 同理 GameMode.h/cpp

  • 关键点

    • StartPlay():关卡开始执行的入口

    • HandleMatchHasStarted()HandleMatchHasEnded():比赛逻辑


3️⃣ GameState / GameStateBase

  • 类名

    • AGameStateBase / AGameState
  • 路径

    • Engine/Source/Runtime/Engine/Classes/GameFramework/GameStateBase.h

    • Engine/Source/Runtime/Engine/Private/GameStateBase.cpp

  • 关键点

    • 存储全局游戏状态,自动复制给客户端

    • Replicated 属性、OnRep_ 回调函数是核心


4️⃣ PlayerController

  • 类名APlayerController

  • 路径

    • Engine/Source/Runtime/Engine/Classes/GameFramework/PlayerController.h

    • Engine/Source/Runtime/Engine/Private/PlayerController.cpp

  • 关键点

    • 网络事件的桥梁:Run on Server / Multicast / Client

    • 管理玩家输入、UI、Pawn Possess


5️⃣ PlayerState

  • 类名APlayerState

  • 路径

    • Engine/Source/Runtime/Engine/Classes/GameFramework/PlayerState.h

    • Engine/Source/Runtime/Engine/Private/PlayerState.cpp

  • 关键点

    • 存储玩家分数、名字、状态

    • 自动复制给客户端,用于 HUD 显示


6️⃣ Pawn / Character

  • 类名

    • APawnACharacterACharacterMovementComponent
  • 路径

    • Engine/Source/Runtime/Engine/Classes/GameFramework/Pawn.h

    • Engine/Source/Runtime/Engine/Classes/GameFramework/Character.h

  • 关键点

    • MovementComponent 管理移动和物理

    • Replication 逻辑在 PawnMovementComponentCharacterMovementComponent

    • PossessedBy() / UnPossessed() 与 PlayerController 绑定


7️⃣ Actor / Replication

  • 类名AActor

  • 路径

    • Engine/Source/Runtime/Engine/Classes/GameFramework/Actor.h

    • Engine/Source/Runtime/Engine/Private/Actor.cpp

  • 关键点

    • SetReplicates(true) 开启复制

    • GetLifetimeReplicatedProps() 定义哪些变量复制

    • IsNetMode(NM_Client/Server) 判断 Authority


8️⃣ OnlineSubsystem / Session

  • 类名

    • IOnlineSubsystem

    • IOnlineSession

  • 路径

    • Engine/Source/Runtime/Online/OnlineSubsystem/Public/OnlineSubsystem.h

    • Engine/Source/Runtime/Online/OnlineSubsystem/Public/Interfaces/OnlineSessionInterface.h

  • 关键点

    • 管理 Session、玩家匹配、Steam/Null 等接口

    • Create/Find/Join Session 都在 IOnlineSession


🔹 建议学习顺序

  1. 先从 GameInstance → GameMode → GameState,理解全局和规则管理

  2. 再看 PlayerController + Pawn/Character,理解玩家输入和网络权威

  3. 最后看 Actor + Replication + OnlineSubsystem,理解网络复制和联机机制

相关推荐
渡我白衣1 小时前
深入理解 Transformer:Transformer 究竟是什么?
java·linux·开发语言·c++·人工智能·深度学习·transformer
MC皮蛋侠客9 小时前
DNP3 系列(十二):测试与工具链——模拟器、Wireshark 与一致性测试
网络·wireshark·dnp3
「QT(C++)开发工程师」9 小时前
C++ 11 常用for循环
开发语言·c++
我还记得那天9 小时前
0 初识C++
开发语言·c++
观测云10 小时前
Fastjson 高危 RCE(CVE-2026-16723):如何用观测云快速发现并完成修复
网络·安全·可观测性·观测云
「QT(C++)开发工程师」11 小时前
C++ std::move 详解
开发语言·c++
楷哥爱开发12 小时前
TikTok Shop新加坡本土店入驻:如何选择新加坡本土住宅IP?
网络·网络协议·tcp/ip
网安蟹佬霸12 小时前
# 网络流量分析实战:从Wireshark到入侵检测系统构建(2026最新版,附完整流量分析链与IDS规则集)
网络·测试工具·安全·开源·wireshark·密码学·哈希算法
豆沙沙包?14 小时前
C++~~~set容器、map容器(p57-P69)
开发语言·c++