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

相关推荐
nihui1231 分钟前
Kali Linux 中 Nmap 工具详细使用指南
linux·网络·web安全
txinyu的博客2 分钟前
结合游戏场景解析UDP可靠性问题
java·开发语言·c++·网络协议·游戏·udp
郝学胜-神的一滴8 分钟前
深入解析Mipmap层级判定原理:从理论到实践
c++·unity·godot·游戏程序·图形渲染·unreal engine
雾岛听蓝8 分钟前
探索C++继承机制
开发语言·c++
名字不好奇22 分钟前
在C++中 如何实现java中的Stream
java·c++
喵星人工作室26 分钟前
C++传说:神明之剑0.2.1
开发语言·c++·游戏
深圳南柯电子31 分钟前
深圳南柯电子|EMC电磁兼容测试系统:5G时代应对频段的干扰挑战
网络·人工智能·互联网·实验室·emc
w陆压37 分钟前
2.TCP三次握手、四次挥手
网络·网络协议·计网知识点
紫色的路44 分钟前
TCP消息边界处理的精妙算法
c++·网络协议·tcp/ip·算法
知乎的哥廷根数学学派1 小时前
基于高阶统计量引导的小波自适应块阈值地震信号降噪算法(MATLAB)
网络·人工智能·pytorch·深度学习·算法·机器学习·matlab