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

  • 类名:

    • APawn → ACharacter → ACharacterMovementComponent
  • 路径:

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

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

  • 关键点:

    • MovementComponent 管理移动和物理

    • Replication 逻辑在 PawnMovementComponent 和 CharacterMovementComponent

    • 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,理解网络复制和联机机制

相关推荐
纪念 2298 分钟前
C++算法(六)
开发语言·c++·算法
智慧光迅AINOPOL26 分钟前
POF光电复合缆多业务承载原理
网络·安全·智能路由器
ShineWinsu37 分钟前
对于Qt:QCheckBox常见属性的详细解析
c++·qt·面试·笔试·gui·qcheckbox·多选框
feng_you_ying_li42 分钟前
linux之网络层
linux·运维·网络
步行cgn1 小时前
HTTP 请求报文结构详解:请求行、请求头、请求体各自的作用
网络·网络协议·http
一只小鱼儿吖1 小时前
内网穿透技术全景:原理、安全与实践
网络·安全
AI的探索之旅1 小时前
97 个 OpenCV 实例(三十七):二维码识别,一张图四个码的陷阱
c++·opencv·计算机视觉
UIU1142 小时前
P16237 [蓝桥杯 2026 省 B] 应急布线
数据结构·c++·算法·蓝桥杯
raindayinrain2 小时前
c++设计模式
开发语言·c++·设计模式
旖旎夜光2 小时前
LeetCode 315: 算右侧小于当前元素的个数(归并排序) —— 题解
c++·学习·算法·leetcode·排序算法