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

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

在这里插入图片描述

code review!

参考笔记:
1.虚幻引擎5-Unreal Engine笔记之GameMode关卡(Level)关卡蓝图(Level Blueprint)的关系
2.虚幻引擎5-Unreal Engine笔记之什么时候新建GameMode,什么时候新建关卡?

文章目录

  • 虚幻引擎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.pswp.cn/diannao/84046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java+Selenium+快代理实现高效爬虫

目录 一、前言二、Selenium简介三、环境准备四、代码实现4.1 创建WebDriver工厂类4.2 创建爬虫主类4.3 配置代理的注意事项 六、总结与展望 一、前言 在Web爬虫技术中,Selenium作为一款强大的浏览器自动化工具,能够模拟真实用户操作,有效应对…

SpringBoot配置文件的合并

需求:想分类将mysql数据库的配置放在一个文件,redis的配置放在另外一个文件 就不去引入mysql和redis了,看能否得到值就行了 测试结果 model的包放错了 应该移动到demo里 能否用yml或者yaml呢 这里注意yml的写法 测试结果也是可以的 注意如果主配置文件是yml或者yaml的话

深入理解 BFC:网页布局的关键机制

在前端开发的世界里,网页布局是一项至关重要的任务。而在众多布局相关的概念中,BFC(Block Formatting Context,块级格式化上下文)扮演着极为关键的角色。今天,就让我们深入剖析 BFC 的方方面面。 一、BFC …

04-Web后端基础(基础知识)

而像HTML、CSS、JS 以及图片、音频、视频等这些资源,我们都称为静态资源。 所谓静态资源,就是指在服务器上存储的不会改变的数据,通常不会根据用户的请求而变化。 那与静态资源对应的还有一类资源,就是动态资源。那所谓动态资源&…

Vue3 Element Plus el-table-column Sortable 排序失效

问题描述&#xff1a; vue3中 element plus 中 el-table 的 el-table-column使用了插槽后&#xff0c;为什么sortable不起效果&#xff0c;不能点击排序 <el-table-columnlabel"记账日期"width"110"fixed"left"header-align"left"…

Unity中SRP Batcher使用整理

SRP Batcher 是一种绘制调用优化,可显著提高使用 SRP 的应用程序的性能,SRP Batcher 减少了Unity为使用相同着色器变体的材质准备和调度绘制调用所需的CPU 时间。 工作原理: 传统优化方法通过减少绘制调用次数提升性能,而SRP Batcher的核心理念在于降低绘制调用间的渲染状…

服务器的基础知识

什么是服务器 配置牛、运行稳、价格感人的高级计算机&#xff0c;家用电脑不能比拟的。 服务器的组成&#xff1a;电源、raid卡、网卡、内存、cpu、主板、风扇、硬盘。 服务器的分类 按计算能力分类 超级计算机 小型机AIX x86服务器&#xff08;服务器cpu架构&#xff09; …

服务器网络配置 netplan一个网口配置两个ip(双ip、辅助ip、别名IP别名)

文章目录 问答 问 # This is the network config written by subiquity network:ethernets:enp125s0f0:dhcp4: noaddresses: [192.168.90.180/24]gateway4: 192.168.90.1nameservers:addresses:- 172.0.0.207- 172.0.0.208enp125s0f1:dhcp4: trueenp125s0f2:dhcp4: trueenp125…

高级SQL技巧:时序数据查询优化与性能调优实战

高级SQL技巧&#xff1a;时序数据查询优化与性能调优实战 引言 在现代数据驱动型系统中&#xff0c;时序数据&#xff08;时间序列数据&#xff09;正成为企业核心资产之一。然而&#xff0c;随着数据量激增和复杂业务需求的不断涌现&#xff0c;传统的SQL查询方式已难以满足…

DDoS攻击应对指南:提升网站安全性的有效策略

DDoS&#xff08;分布式拒绝服务&#xff09;攻击成为了企业面临的主要网络安全威胁之一。随着技术的不断发展&#xff0c;DDoS攻击手段也在不断升级&#xff0c;给企业的网络安全带来了极大的挑战。针对这一问题&#xff0c;企业需要采取有效的防御措施&#xff0c;以保障网站…

Appium 的 enableMultiWindows 参数

引言 在移动应用自动化测试中&#xff0c;​​混合应用&#xff08;Hybrid App&#xff09;​​ 和多窗口场景&#xff08;如分屏、弹窗、多 WebView&#xff09;的处理一直是技术难点。Appium 的 enableMultiWindows 参数为这类场景提供了关键支持&#xff0c;但在实际使用中常…

C++中的菱形继承问题

假设有一个问题&#xff0c;类似于鸭子这样的动物有很多种&#xff0c;如企鹅和鱿鱼&#xff0c;它们也可能会有一些共同的特性。例如&#xff0c;我们可以有一个叫做 AquaticBird &#xff08;涉禽&#xff0c;水鸟的一类&#xff09;的类&#xff0c;它又继承自 Animal 和 Sw…

前端excel表格解析为json,并模仿excel显示

前端环境&#xff1a;elementUI vue2 <style lang"scss" scoped> 页面效果 jsondata为mock数据&#xff0c;为方便调试其内容可清空&#xff0c;首行&#xff08;字母坐标&#xff09;随数据内容自动变化&#xff0c;首列也是一样&#xff0c;模拟excel …

NAT(网络地址转换)逻辑图解+实验详解

原理 NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09; 是一种网络技术&#xff0c;用于在IP数据包通过路由器或防火墙时&#xff0c;修改其源IP地址或目标IP地址&#xff0c;以实现不同网络之间的通信。 基础概念 本来NAT是来解决 IPv4 地…

Qt+线段拖曳示例代码

Qt线段拖曳示例代码&#xff0c;功能见下图。 代码如下&#xff1a; canvaswidget.h #ifndef CANVASWIDGET_H #define CANVASWIDGET_H#include <QWidget> #include <QPainter> #include <QMouseEvent> #include <QVector>class CanvasWidget : publi…

高等数学-求导

一、求导数的原函数就是求导数的积分 1&#xff09;设函数f(t)在区间[a,b]上连续&#xff0c;则对任意的x∈[a,b],f(t)在[a,x]上连续&#xff0c;从而在[a,x]上可积。令其积分为Φ(x)∫*a^x f(t)dt, x∈[a,b],则Φ(x)为定义在区间[a,b]上的一个函数&#xff0c;通常称作积分上…

(第94天)OGG 微服务搭建 Oracle 19C CDB 架构同步

前言 Oracle GoldenGate Microservice Architecture (OGGMA) 是在 OGG 12.3 版本推出的全新架构。相比传统架构,OGGMA 基于 Rest API,通过 WEB 界面即可完成 OGG 的配置和监控,大大简化了部署和管理流程。 本文将详细介绍如何在 Oracle 19C CDB 环境中部署 OGG 19.1.0.4 微…

前端vscode学习

1.安装python 打开Python官网&#xff1a;Welcome to Python.org 一定要点PATH&#xff0c;要不然要自己设 点击install now,就自动安装了 键盘winR 输入cmd 点击确定 输入python&#xff0c;回车 显示这样就是安装成功了 2.安装vscode 2.1下载软件 2.2安装中文 2.2.1当安…

uniapp vue 开发微信小程序 分包梳理经验总结

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“uniapp vue 开发微信小程序 分包梳理经验总结”。 在使用 UniAppvue框架开发微信小程序时&#xff0c;当项目比较大的时候&#xff0c;经常需要分包加载。它有助于控制主包的大小&#xff0c;从而提升小程序的启…

git合并多次commit提交

首先查看历史记录 git log 查看你想要合并的commit是哪些&#xff08;注意&#xff1a;这里是逆序&#xff0c;最上的是最新提交&#xff09; 找到当前想要合并的最后一个记录&#xff0c;复制该记录的下一个记录的 id&#xff08;黄色部分commit id&#xff09;&#xff0c…