当前位置: 首页 > news >正文

UE核心架构概念

核心概念概览

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

http://www.dtcms.com/a/586259.html

相关文章:

  • 叙述一个网站的建设过程免费网站建设绑定域名
  • 模型理解与可解释性图表案例解读之SHAP 瀑布图(Waterfall Plot)
  • 网站建设在哪个会计科目核算游戏币网站建设成本
  • 地方招聘网站如何做推广温州市城市建设档案馆网站
  • Robotiq 2F-85/2F-140夹爪:为具身智能科研搭建物理交互核心硬件支撑
  • 关于MMDetection综述
  • 免费的工程网站Wordpress建站安装教程图解
  • 厦门行业网站建设开发公司支付前期物业开办费包括哪些内容
  • 深圳网站建设招聘网络营销推广方案策划书
  • MATLAB实现TCN神经网络数值预测
  • 衡水网站制作公司哪家专业珠海新闻
  • Linux30 网络编程TCP流程
  • 多线程——volatile 关键字 wait 和 notify
  • 江苏网站建设南通西宁 专业网站建设
  • Python:np.clip(z, -250, 250) 的功能解释
  • 从零开始打造 Laravel 扩展包:开发、测试到发布完整指南
  • 网站建设文案中国建设银行官网app
  • 网站备案 怎么加做外贸网站流程图
  • 深入浅出红黑树:C++ 完整实现与核心原理剖析
  • 制作论坛类网站模板node.js做网站好累
  • 浙江网站制作dede音乐网站
  • Mediatek NeuroPilot Yolov8量化
  • 使用renren-generator逆向生成增删改查代码
  • 北京网站建设一条龙昆明岭蓝网站建设公司
  • 1.PagedAtteion算法
  • 网站开发语言怎么看如何做网站授权网址
  • 上上海网站建设设计网站快速收录软件
  • 购物网站开发模板做卷闸门网站有用吗
  • [Linux][经验总结]Nginx报错:unknown directive “sub\_filter“ 解决与优化
  • cesium126,230420,程序运行时动态加载本地倾斜摄影:使用 C++ 编程