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

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

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

在这里插入图片描述

code review!

文章目录

  • 虚幻引擎5-Unreal Engine笔记之`GameMode`、`关卡(Level)` 和 `关卡蓝图(Level Blueprint)`的关系
    • 1. GameMode 的作用
      • 主要职责
      • 实现方式
    • 2. 关卡(Level)的角色
      • 主要特点
      • 与 GameMode 的关系
    • 3. 关卡蓝图(Level Blueprint)的作用
      • 主要职责
      • 与 GameMode 的关系
      • 与关卡的关系
    • 4. 三者之间的关系总结
      • 运行时关系
      • 逻辑分工
    • 5. 实际案例
    • 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 实例,调用其函数或访问其变量。
http://www.xdnf.cn/news/514207.html

相关文章:

  • 快速上手SElinux
  • 第8章 常用实用类
  • 基于shardingsphere的分库分表方案
  • redis读写一致问题
  • Visual Studio已更新为17.14+集成deepseek实现高效编程
  • AI大模型(二)embedding模型调用后对产生的数据进行分析
  • 水平可见直线--上凸包(andrew算法
  • 【嵙大o】C++作业合集
  • 不同版本 Linux 系统账号操作指令 ——rtkit 账号删除、普通账号的创建 / 删除 / 权限修改超详细大全
  • 如何在 Windows 11 或 10 上安装 Amazon Corretto
  • Ubuntu 20.04 报错记录: Matplotlib 无法使用 OpenCV 的 libqxcb.so
  • O2O电商变现:线上线下相互导流——基于定制开发开源AI智能名片S2B2C商城小程序的研究
  • Python蓝色飘雪
  • Linux云计算训练营笔记day10(MySQL数据库)
  • Java虚拟机 - JVM与Java体系结构
  • MyBatis 核心技术详解:从连接池到多表查询
  • Python多进程、多线程、协程典型示例解析
  • 深入理解 OpenCV 的 DNN 模块:从基础到实践
  • OpenSearch入门:从文档示例到查询实战
  • MCP - Cline 接入 高德地图 Server
  • DAY 29 复习日:类的装饰器
  • # 终端执行 java -jar example.jar 时(example.jar为项目jar包)报错:“没有主清单属性” 的解决方法
  • 第一章:重启之始
  • 零基础搭建!基于PP-ShiTuV2的轻量级图像识别系统(Docker+API部署指南)
  • 蓝桥杯1140 最小质因子之和(Hard Version)
  • 2KW压缩机驱动参考设计【SCH篇】
  • 使用conda创建python虚拟环境,并自定义路径
  • C++学习:六个月从基础到就业——C++20:协程(Coroutines)
  • Golang内存逃逸
  • 用代码解读_AI_强化学习在机器人路径规划中的应用与优化