虚幻引擎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 指定。

主要职责

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

实现方式

  • GameMode 通常通过 C++ 或蓝图实现。如果是蓝图,可以基于 GameModeBase 或 GameMode 类创建。
  • 在项目设置中可以设置默认的 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 实例,调用其函数或访问其变量。
相关推荐
2603_96969485几秒前
【MySQL学习笔记】DQL(基础查询/条件/聚合/分组/排序/分页)与 DCL(用户权限)全解析
数据库·笔记·学习·mysql·学习方法
Zhao-Jichao25 分钟前
AI Prompting for Everyone 课程笔记 - P08 上下文 Context
人工智能·笔记
鬼手点金30 分钟前
Skills:领域能力的可组合单元
java·人工智能·笔记·自动化·1024程序员节
夕除10 小时前
Redis 过期策略
redis·笔记·面试
Nuanyt11 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
叼烟扛炮13 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
叼烟扛炮13 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
songyuc14 小时前
【Manskill3】TableSceneBuilder学习笔记
pytorch·笔记·学习
゛凌乱的记忆づ16 小时前
好用的md文件编辑器——TyporaS与Typora
笔记·git·typora·markdown
zroooo16 小时前
计算机学习-知识庞大而繁杂
笔记·学习