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

相关推荐
googleccsdn7 分钟前
ENSP Pro Lab笔记:配置STP/RSTP/MSTP(7)
网络·笔记·网络协议
灯厂码农8 分钟前
C++文件操作
开发语言·c++
️停云️24 分钟前
C++异常与智能指针
开发语言·c++
chenyuhao20241 小时前
MySQL事务
开发语言·数据库·c++·后端·mysql
爪哇部落算法小助手1 小时前
每日两题day59
数据结构·c++·算法
Fortinet_CHINA1 小时前
2026 年度 CISO 预测报告
网络·安全·ai
D_evil__1 小时前
[C++高频精进] 现代C++特性:右值引用和移动语义
c++
new_daimond1 小时前
WAF(Web Application Firewall)详解
网络·web app
Mr_WangAndy1 小时前
C++14新特性_第一章C++语言特性_Lambda初始化捕获,decltype(auto)
c++·c++40周年·lambda初始化捕获·decltype auto
不会c嘎嘎2 小时前
【C++】深入理解多态:从用法到原理
开发语言·c++