UE5 Gameplay框架及继承关系详解

文章目录


前言

Unreal Engine 5(UE5)的 Gameplay 框架 是一个高度模块化的系统,用于构建游戏逻辑、角色控制、多人同步和游戏规则等核心功能。其核心类和继承关系遵循面向对象设计原则,以下是详细的框架解析:


一、核心类及其继承关系

以下是 UE5 Gameplay 框架中关键类的 继承树

  1. UObject

    • 所有 UE 对象的基类,提供反射(Reflection)、序列化(Serialization)、垃圾回收(GC)等基础功能。
  2. AActor

    • 继承自 UObject,是游戏中所有可放置在场景中的对象的基类(如角色、道具、光源等)。

    • 包含位置、旋转、缩放等空间属性,支持 Tick 逻辑更新。

    • 子类

      • APawn:可被玩家或 AI 控制的实体(如角色、载具)。

        • ACharacter :扩展了 APawn ,内置角色移动组件(UCharacterMovementComponent)和胶囊体碰撞。
      • AController :控制 APawn 的逻辑实体。

        • APlayerController:玩家输入和 UI 交互的核心。

        • AAIController:驱动 AI 行为。

    • AGameModeBase:定义游戏规则(如胜利条件、玩家生成规则)。

      • AGameMode (已弃用,推荐使用 AGameModeBase)。
    • AGameStateBase:同步游戏全局状态(如分数、剩余时间)。

      • AGameState (已弃用,推荐使用 AGameStateBase)。
    • APlayerState:存储玩家数据(如昵称、分数)。

    • AHUD:管理游戏界面绘制(如血条、计分板)。

二、核心类的职责与协作

2.1 Actor & Pawn

  • AActor
    • 所有场景对象的基类,提供生命周期管理(BeginPlay , Tick , Destroy )和组件系统(UActorComponent)。

    • APawn

      • 可被控制的实体,通过 AController 接收输入或 AI 指令。
    • ACharacter

      • 专为角色设计,内置 CharacterMovementComponent 支持复杂移动(跳跃、攀爬)。

2.2 Controller

  • AController

    • 逻辑与物理实体的分离:Controller 控制 Pawn,Pawn 处理物理表现。
  • APlayerController

    • 处理玩家输入(如键盘、鼠标),管理 UI(通过 UUserWidget)。
    • 在多人游戏中,每个玩家客户端有一个 PlayerController。
  • AAIController

    • 驱动 AI 行为树(Behavior Tree)或状态机。

2.3 GameMode & GameState

  • AGameModeBase

    • 仅在服务器存在,定义游戏规则(如玩家生成逻辑、胜利条件)。
    • 生命周期方法:InitGame , PostLogin , StartPlay
  • AGameStateBase

    • 同步到所有客户端,存储全局游戏状态(如剩余时间、玩家列表)。
    • 服务器更新后自动同步到客户端。

2.4 PlayerState

  • APlayerState
    • 存储玩家数据(如分数、装备),在多人游戏中同步到所有客户端。
    • 每个玩家(包括 AI)有一个 PlayerState

2.5 HUD & UI

  • AHUD
    • 绘制游戏内 UI(如准星、血条),通常与 UUserWidget 结合使用。
    • 仅在本地玩家客户端存在。

三、协作流程示例

  1. 游戏启动

    • 服务器创建 AGameModeBase ,客户端创建 AGameStateBase
  2. 玩家加入

    • 服务器通过 GameMode 生成 APlayerControllerAPawn
    • PlayerController 获取输入并驱动 Pawn
  3. 游戏进行

    • GameState 同步全局状态(如倒计时),PlayerState 同步玩家数据。
    • HUD 根据本地数据绘制 UI。
  4. 游戏结束

    • GameMode 检测胜利条件并触发结束逻辑。

总结

cpp 复制代码
UObject
└── AActor
    ├── APawn
    │   └── ACharacter
    ├── AController
    │   ├── APlayerController
    │   └── AAIController
    ├── AGameModeBase
    ├── AGameStateBase
    ├── APlayerState
    └── AHUD

通过理解这些类的职责和协作关系,开发者可以高效构建符合 UE5 规范的 Gameplay 逻辑,同时充分利用引擎的多人同步和模块化特性。

相关推荐
温玉琳琅5 小时前
【UE5】虚幻引擎小百科
ue5·游戏引擎·虚幻
远离UE41 天前
UE 材质 变体 概念
ue5·材质
吴梓穆3 天前
UE5 重新编译插件版本
ue5
HECUgauss3 天前
UE5 使用过程遇到的问题
ue5
小白学过的代码3 天前
ue5.4和webul通信
开发语言·javascript·ue5
m0_552200823 天前
《UE5_C++多人TPS完整教程》学习笔记40 ——《P41 装备(武器)姿势(Equipped Pose)》
c++·游戏·ue5
漫游者Nova3 天前
虚幻引擎Unreal Engine5恐怖游戏设计制作教程,从入门到精通从零开始完整项目开发实战详细讲解中英字幕
ue5·游戏引擎·虚幻·游戏开发完整教程·恐怖游戏开发
ue星空5 天前
UE5音频技术
ue5
帅_shuai_16 天前
UE5 游戏模板 —— FirstShootGame
游戏·ue5
吴梓穆17 天前
UE5 手动停止Delay定时器
ue5