虚幻引擎5-Unreal Engine笔记之`GameMode`、`关卡(Level)` 和 `关卡蓝图(Level Blueprint)`的关系

虚幻引擎5-Unreal Engine笔记之GameMode关卡(Level)关卡蓝图(Level Blueprint)的关系

code review!

文章目录

  • [虚幻引擎5-Unreal Engine笔记之`GameMode`、`关卡(Level)` 和 `关卡蓝图(Level Blueprint)`的关系](#虚幻引擎5-Unreal Engine笔记之GameMode关卡(Level)关卡蓝图(Level Blueprint)的关系)
    • [1. GameMode 的作用](#1. GameMode 的作用)
    • [2. 关卡(Level)的角色](#2. 关卡(Level)的角色)
      • 主要特点
      • [与 GameMode 的关系](#与 GameMode 的关系)
    • [3. 关卡蓝图(Level Blueprint)的作用](#3. 关卡蓝图(Level Blueprint)的作用)
    • [4. 三者之间的关系总结](#4. 三者之间的关系总结)
    • [5. 实际案例](#5. 实际案例)
    • [6. 注意事项](#6. 注意事项)

1. GameMode 的作用

GameMode 是 UE5 中用于定义游戏规则和逻辑的核心类。它是一个全局的管理者,负责游戏的整体行为和状态。每个关卡都会关联一个 GameMode,通常通过项目设置或关卡的 World Settings 指定。

主要职责

  • 游戏规则:定义游戏的核心逻辑,比如胜负条件、计分规则等。
  • 玩家管理 :控制玩家角色的生成(通过 PawnPlayerController)、玩家登录/退出等。
  • 游戏状态:管理游戏的状态(开始、进行中、结束等)。
  • 默认类设置 :指定默认的 PawnPlayerControllerHUD 等类。
  • 全局逻辑:处理不依赖于特定关卡的全局游戏逻辑。

实现方式

  • GameMode 通常通过 C++ 或蓝图实现。如果是蓝图,可以基于 GameModeBaseGameMode 类创建。
  • 在项目设置中可以设置默认的 GameMode,也可以在特定关卡的 World Settings 中覆盖默认设置。

2. 关卡(Level)的角色

关卡是 UE5 中游戏世界的具体表现形式,它包含了场景中的所有对象(如地形、静态网格体、光源、触发器等)。每个关卡可以看作是一个独立的游戏场景或区域。

主要特点

  • 物理空间:关卡定义了游戏世界的几何结构和内容。
  • 独立性:一个项目可以有多个关卡,游戏可以在关卡之间切换(比如从主菜单到游戏场景)。
  • World Settings :每个关卡有自己的 World Settings,可以指定该关卡使用的 GameMode

与 GameMode 的关系

  • 每个关卡运行时会加载一个 GameMode 实例,GameMode 控制该关卡的游戏逻辑。
  • 关卡本身不包含游戏规则或逻辑,规则由 GameMode 提供,关卡只提供环境和对象。

3. 关卡蓝图(Level Blueprint)的作用

关卡蓝图是特定关卡的专用蓝图,用于处理与该关卡相关的特定逻辑。它可以看作是关卡的"脚本",用来控制关卡中对象的交互和事件。

主要职责

  • 关卡特定逻辑:处理与该关卡相关的特定事件或交互,比如某个门的开关、某个触发器的逻辑。
  • 对象交互:直接访问和操作关卡中的具体对象(Actor),比如移动平台、改变灯光状态等。
  • 事件触发:响应关卡中的事件(如玩家进入某个区域)。

与 GameMode 的关系

  • 关卡蓝图和 GameMode 是互补的:
  • GameMode 负责全局游戏规则和逻辑,适用于整个游戏或跨关卡的逻辑。
  • 关卡蓝图负责处理特定关卡的局部逻辑,适用于与关卡中特定对象或事件相关的行为。
  • 关卡蓝图可以与 GameMode 通信,比如通过调用 GameMode 的函数或获取 GameMode 的实例来访问全局数据。
  • 例如:GameMode 可能管理玩家的生命值,而关卡蓝图可能在玩家触发某个陷阱时调用 GameMode 的函数来扣除生命值。

与关卡的关系

  • 每个关卡有一个唯一的关卡蓝图,关卡蓝图直接绑定到该关卡。
  • 关卡蓝图可以直接引用和操作关卡中的 Actor,因为它与关卡是紧密耦合的。

4. 三者之间的关系总结

  • GameMode 是全局的游戏规则管理者,负责游戏的核心逻辑和状态,通常跨关卡共享(除非特定关卡覆盖默认 GameMode)。
  • 关卡(Level) 是游戏世界的物理表现,提供了场景和对象,本身不包含逻辑,但可以通过 World Settings 指定一个 GameMode
  • 关卡蓝图(Level Blueprint) 是关卡的专用脚本,负责处理关卡特有的局部逻辑,可以与 GameMode 交互来获取全局数据或触发全局事件。

运行时关系

  1. 游戏启动时,加载一个关卡。
  2. 关卡根据 World Settings 加载对应的 GameMode 实例,GameMode 控制游戏规则。
  3. 关卡中的对象和事件通过关卡蓝图实现局部逻辑,关卡蓝图可以与 GameMode 交互来影响全局状态。

逻辑分工

  • 如果逻辑是全局的、与游戏规则相关的,放在 GameMode 中(比如计分、游戏结束)。
  • 如果逻辑是特定关卡相关的,放在关卡蓝图中(比如某个关卡中的机关触发)。
  • 如果逻辑是特定 Actor 相关的,放在该 Actor 的蓝图中(比如一个角色的移动逻辑)。

5. 实际案例

假设正在开发一个射击游戏:

  • GameMode:定义游戏规则,比如玩家有 3 条命,击杀敌人得 10 分,达到 100 分获胜。管理玩家的重生、游戏结束等逻辑。
  • 关卡(Level):包含游戏场景,比如一个竞技场,里面有墙壁、武器刷新点、敌人生成点等。
  • 关卡蓝图 :处理关卡中的特定逻辑,比如玩家进入某个区域时触发陷阱,扣除玩家生命(通过调用 GameMode 的函数)。

6. 注意事项

  • 避免逻辑重叠 :尽量避免在关卡蓝图中写全局逻辑,保持 GameMode 和关卡蓝图的职责清晰。
  • GameMode 覆盖 :可以在关卡的 World Settings 中为特定关卡指定不同的 GameMode,以适应不同关卡的需求。
  • 通信方式 :关卡蓝图可以通过 Get Game Mode 节点获取 GameMode 实例,调用其函数或访问其变量。
相关推荐
特种加菲猫11 分钟前
指尖上的魔法:优雅高效的Linux命令手册
linux·笔记
wuxuanok38 分钟前
Web后端开发-分层解耦
java·笔记·后端·学习
wuxuanok1 小时前
Web后端开发-请求响应
java·开发语言·笔记·学习
诗句藏于尽头2 小时前
内网使用rustdesk搭建远程桌面详细版
笔记
蜡笔小电芯2 小时前
【C语言】指针与回调机制学习笔记
c语言·笔记·学习
丰锋ff2 小时前
瑞斯拜考研词汇课笔记
笔记
DKPT4 小时前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式
KoiHeng7 小时前
操作系统简要知识
linux·笔记
巴伦是只猫8 小时前
【机器学习笔记Ⅰ】11 多项式回归
笔记·机器学习·回归
DKPT11 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式