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

相关推荐
wljt31 分钟前
HTTP和openFeign
网络·网络协议·http
_F_y7 小时前
MySQL用C/C++连接
c语言·c++·mysql
兩尛7 小时前
c++知识点2
开发语言·c++
xiaoye-duck7 小时前
C++ string 底层原理深度解析 + 模拟实现(下)——面试 / 开发都适用
开发语言·c++·stl
汤愈韬7 小时前
ACL概述、ACL原理、基本ACL应用及配置
网络·网络协议·网络安全
Azure_withyou8 小时前
Visual Studio中try catch()还未执行,throw后便报错
c++·visual studio
琉染云月8 小时前
【C++入门练习软件推荐】Visual Studio下载与安装(以Visual Studio2026为例)
c++·visual studio
L_09079 小时前
【C++】高阶数据结构 -- 红黑树
数据结构·c++
码刘的极客手记11 小时前
VCAP4-DCA Beta 考试体验分享与 esxcli 自动化实战(第二、三部分)
网络·esxi·vmware·虚拟机
朝风工作室12 小时前
开源一款轻量级跨网段 IPC 设备发现与网络配置工具
网络·开源