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

21.UE5游戏存档,读档,函数库

2-23 游戏存档、读档、函数库_哔哩哔哩_bilibili

目录

1.存档蓝图

2.函数库

2.1保存存档

 2.2读取存档:

3.加载游戏,保存游戏

3.1游戏实例对象

3.2 加载游戏

 3.3保存游戏


这一节的内容较为错综复杂,中间没有运行程序进行阶段性成果的验证,只有全部敲完,才能够实现对应功能,所以最好一口气看到最后。

1.存档蓝图

既然我们想要保存存档,当然不能一股脑的将数据全保存,需要规定存档保存的内容有哪些。

存档蓝图,就是将我们想要保存的数据,全部记录到这个蓝图中,先在内存中进行保存,随后在写入到硬盘中,进行持久化保存。

首先创建存档蓝图

双击打开我的存档,在存档蓝图中保存两个内容,分别时等级(int)当前经验值(float)

这个时候我们想要保存的存档格式就已经规定好了,下一步是实现读取保存存档的方法,这个方法需要我们全局都能够调用,所以这里我们引入函数库的概念。 

2.函数库

函数库中的函数可以理解为全局函数,在项目的任何位置都可以调用的函数。

在我们的函数库中,目前主要实现两个函数分别是:读取存档,保存存档

首先创建函数库蓝图

2.1保存存档

在函数库中新建一个函数

保存存档函数的输入选择我们的存档蓝图类型,然后调用函数:将游戏保存到插槽,可以将我们存档蓝图中的内容持久化到硬盘中。

持久化的文件,以下面的形式存储在本地文件中。

 这个时候我们就成功保存我们存档蓝图(我的蓝图)中的内容到硬盘上了,下一步是如何从文件mysave.sav中读取存档到我们的存档蓝图中。

 2.2读取存档:

创建读取存档的函数,首先判断游戏存档存在(Slot Name即我们的存档名:mysave.sav),如果能找到我们的存档,就直接从插槽中加载游戏,加载的内容会返回一个存档蓝图类型的对象,将其转换为我的存档,并进行输出,这样这个方法就会返回一个我们想要的存档蓝图对象了。

当然返回节点除了我们的存档蓝图对象,还有一个是否成功读档的判断标志,用来对程序进行控制。

接下来我们要从存档蓝图中加载游戏的,以及保存游戏

3.加载游戏,保存游戏

3.1游戏实例对象

创建游戏实例,用来控制游戏是否采用加载存档的方式进入。

游戏实例蓝图中只添加一个布尔类型的变量,用来控制是否采用读取存档的方式进入游戏。

3.2 加载游戏

打开我们的开始菜单UI组件蓝图,并打开图表

开始游戏按钮:获取我们的游戏实例对象,是否读取存档==False 进入游戏,

加载游戏按钮:获取我们的游戏实例对象,是否读取存档==True。然后调用函数库中的读取存档函数,如果读取存档成功,则直接进入开始关卡,否则不操作。(读取存档函数失败会自动打印:找不到存档,见上文2.2)

 打开我们的主角蓝图,并在事件开始的时候准备恢复存档数据。

因为一般情况下一个角色对应一个存档蓝图(存档蓝图和硬盘里的存档文件,概念不一样,存档蓝图只有一个,但是存档文件可以有多个),所以我们直接在主角下声明一个变量,为我的存档蓝图对象。

如果点击开始游戏,游戏实例中的是否读取存档为false,这样就需要为我们的角色新建一个存档蓝图对象,保存我们的角色信息。

如果点击加载游戏,游戏实例中的是否读取存档为true,这样我们就需要使用到函数库中的读取存档函数,从存档文件(mysave.sav)中加载我们存档蓝图对象。

 将文件中读取到的存档蓝图对象,拉出来,获取其中的等级和当前经验,并为我们的主角对象赋值,随后将读取到的蓝图存档绑定到主角的我的存档

 3.3保存游戏

我们希望实现:当角色死亡时,将等级,经验保存到存档蓝图(我的存档)中,并进一步持久化到存档文件(mysave.sav)中,随后将游戏跳转到开始界面。

打开主角的任意伤害事件。

 实现逻辑如下:

 至此实现死亡后保存等级和经验的功能。

 4.主要知识点

4.1函数库的使用

4.2主角属性<——>存档蓝图对象<——>插槽(Slot Name)mysave.sav之间的转换,插槽到存档蓝图到主角属性,对应着游戏加载(从硬盘到内存),主角属性到存档蓝图到插槽,对应着保存游戏(从内存到硬盘)

相关文章:

21.UE5游戏存档,读档,函数库

2-23 游戏存档、读档、函数库_哔哩哔哩_bilibili 目录 1.存档蓝图 2.函数库 2.1保存存档 2.2读取存档&#xff1a; 3.加载游戏&#xff0c;保存游戏 3.1游戏实例对象 3.2 加载游戏 3.3保存游戏 这一节的内容较为错综复杂&#xff0c;中间没有运行程序进行阶段性成果的验…...

「Mac玩转仓颉内测版14」PTA刷题篇5 - L1-005 考试座位号

本篇将继续讲解PTA平台上的题目 L1-005 考试座位号&#xff0c;通过考生准考证号与座位号的对应关系&#xff0c;掌握简单的数据查询与映射操作&#xff0c;进一步提升Cangjie编程语言的实际应用能力。 关键词 PTA刷题数据查询映射操作输入输出Cangjie语言 一、L1-005 考试座位…...

Vue3引用高德地图,进行位置标记获取标记信息

首先安装地图插件 cnpm i amap/amap-jsapi-loader --save封装地图子组件 <template><el-dialogtitle"选择地点"width"740px"class"select-map-dialog"v-model"dialogShow":close-on-click-modal"false":modal-or…...

《C++设计模式:重塑游戏角色系统类结构的秘籍》

在游戏开发领域&#xff0c;游戏角色系统的类结构设计至关重要。一个良好的类结构可以使游戏更易于扩展、维护和优化&#xff0c;而 C中的设计模式为我们提供了强大的工具来实现这一目标。 一、理解游戏角色系统的复杂性 游戏角色系统通常具有高度的复杂性。每个角色都有自己…...

深入浅出 Go 语言:现代编程的高效选择

深入浅出 Go 语言:现代编程的高效选择 引言 Go 语言(也称 Golang)是由 Google 开发的一种现代编程语言,面向高效、简单和并发。自 2009 年问世以来,它已迅速成长为许多企业和开发者首选的语言,尤其是在后端开发、云计算和微服务领域。 本文旨在从 Go 语言的设计哲学、…...

RDIFramework.NET CS敏捷开发框架 V6.1发布(.NET6+、Framework双引擎、全网唯一)

RDIFramework.NET C/S敏捷开发框架V6.1版本迎来重大更新与调整&#xff0c;全面重新设计业务逻辑代码&#xff0c;代码量减少一半以上&#xff0c;开发更加高效。全系统引入全新字体图标&#xff0c;整个界面焕然一新。底层引入最易上手的ORM框架SqlSugar&#xff0c;让开发更加…...

vue路由的钩子函数?

在 Vue 中&#xff0c;路由的钩子函数可以用来在导航过程中执行一些操作&#xff0c;比如进行权限验证、页面加载前后的处理等。常用的路由钩子函数包括全局前置守卫、全局解析守卫、全局后置钩子以及路由独享守卫。下面是这些路由守卫函数的简要说明&#xff1a; 全局前置守卫…...

【Java】枚举类映射

在数据库中常用数字来代替字符串类型&#xff0c;编写一个枚举映射类 当数据库的介质类型要存储数字&#xff0c;前端可以任意传参&#xff0c;通过枚举转换后端都会转成数字对应类型 import lombok.Getter;/*** <p>* 存档介质类型* </p>** author Jyang* date 2…...

精华帖分享|浅谈金融时间序列分析与股价随机游走

本文来源于量化小论坛公共讨论区板块精华帖&#xff0c;作者为正扬&#xff0c;发布于2024年6月3日。 以下为精华帖正文&#xff1a; 01 引 时间序列分析是个很唬人的术语&#xff0c;实际上它也不是一个很容易接近的话题。我本科曾经短暂地学过一点点&#xff0c;又看到互联…...

任意文件下载漏洞

1.漏洞简介 任意文件下载漏洞是指攻击者能够通过操控请求参数&#xff0c;下载服务器上未经授权的文件。 攻击者可以利用该漏洞访问敏感文件&#xff0c;如配置文件、日志文件等&#xff0c;甚至可以下载包含恶意代码的文件。 这里再导入一个基础&#xff1a; 你要在网站下…...

LeetCode 445.两数相加 II

题目&#xff1a; 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数字都不会以零开头。 思路&#xff1a;反转链表 两数相加 I 代码&…...

CentOS 7中查找已安装JDK路径的方法

使用yum安装了jdk8&#xff0c;但是其他中间件需要配置路径的时候&#xff0c;却没办法找到&#xff0c;如何获取jdk路径&#xff1a; 一、确认服务器是否存在jdk java -version 二、查找jdk的 java 命令在哪里 which java 三、找到软链指向的地址 ls -lrt /usr/bin/java l…...

springboot基于Web足球青训俱乐部管理后台系统开发(代码+数据库+LW)

摘 要 随着社会经济的快速发展&#xff0c;人们对足球俱乐部的需求日益增加&#xff0c;加快了足球健身俱乐部的发展&#xff0c;足球俱乐部管理工作日益繁忙&#xff0c;传统的管理方式已经无法满足足球俱乐部管理需求&#xff0c;因此&#xff0c;为了提高足球俱乐部管理效率…...

RHCE的学习(21)

第三章 Shell条件测试 用途 为了能够正确处理Shell程序运行过程中遇到的各种情况&#xff0c;Linux Shell提供了一组测试运算符。 通过这些运算符&#xff0c;Shell程序能够判断某种或者几个条件是否成立。 条件测试在各种流程控制语句&#xff0c;例如判断语句和循环语句中…...

Ubuntu 18.04 配置sources.list源文件(无法安全地用该源进行更新,所以默认禁用该源)

如果你 sudo apt update 时出现诸如 无法安全地用该源进行更新&#xff0c;所以默认禁用该源 的错误&#xff0c;那就换换源吧&#xff0c;链接&#xff1a; https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/ 注意版本&#xff1a; 修改源文件&#xff1a; sudo nano /etc…...

19.UE5道具掉落

2-21 道具掉落&#xff0c;回血、回蓝、升级提升伤害_哔哩哔哩_bilibili 目录 1.道具的创建&#xff0c;道具功能的实现 2.随机掉落 1.道具的创建&#xff0c;道具功能的实现 新建Actor蓝图&#xff0c;并命名为道具总类&#xff0c;添加一个Niagara粒子组件和一个碰撞箱bo…...

MySQL —— MySQL逻辑架构与查询过程

文章目录 MySQL逻辑架构整体分为三层连接层服务层查询缓存解析器优化器执行器 存储引擎层系统文件层 MySQL 查询过程查询过程框图 博客1 博客2 MySQL逻辑架构整体分为三层 最上层为客户端层&#xff0c;并非MySQL所独有&#xff0c;诸如&#xff1a;连接管理、授权认证、权限校…...

ODOO学习笔记(12):自定义模块开发

一、Odoo模块结构基础 基本目录结构 Odoo自定义模块通常有一个特定的目录结构。一个典型的模块目录包含以下文件和文件夹&#xff1a; __init__.py&#xff1a;这是一个Python模块初始化文件。它使得该目录被视为一个Python模块。在这个文件中&#xff0c;你可以通过from. impo…...

Excel单元格中自适应填充多图

实例需求&#xff1a;在Excel插入图片时&#xff0c;由于图片尺寸各不相同&#xff0c;如果希望多个图片填充指定单元格&#xff0c;依靠用户手工调整&#xff0c;不仅费时费力&#xff0c;而且很难实现完全填充。如下图中的产品图册&#xff0c;有三个图片&#xff0c;如下图所…...

20.useMediaQuery

React useMediaQuery 钩子:如何优雅地实现响应式设计? 在现代 Web 开发中,响应式设计是一个关键概念,它允许应用根据不同的屏幕尺寸和设备特性调整其布局和行为。useMediaQuery 钩子提供了一种声明式的方法来在 React 组件中使用媒体查询,使得响应式逻辑的实现变得简单而…...

无人机场景 - 目标检测数据集 - 车辆检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;无人机场景车辆检测数据集&#xff0c;真实场景高质量图片数据&#xff0c;涉及场景丰富&#xff0c;比如无人机场景城市道路行驶车辆图片、无人机场景城市道边停车车辆图片、无人机场景停车场车辆图片、无人机场景小区车辆图片、无人机场景车辆遮挡、车…...

聚合查询(查询)

count:统计表中所有的行数 指定某一列不统计NULL sum:求和 NULL值不参与计算&#xff08;省略&#xff09; avg()&#xff1a;对所有行的指定列求平均值 max&#xff08;&#xff09; min()&#xff1a;求所有指定行中最大值与最小值 分组查询 group by: ROUDN()小数点 havin…...

QT QLineEdit失去焦点事件问题与解决

本文介绍如何获得QLineEdit的失去焦点事件和获得焦点的输入框也会触发失去焦点事件的问题&#xff01; 目录 一、QLineEdit获得失去焦点事件 1.自定义类继承自QLineEdit 2.重写 focusOutEvent 3.使用 二、失去焦点事件问题 1.问题描述 2.问题解决 三、源码分享 lineed…...

Remora

Remora Remora 模型能够独立于碱基识别过程预测甲基化/修饰碱基的状态。Remora 仓库专注于准备修饰碱基训练数据和训练修饰碱基模型。此外,还提供了一些用于运行 Remora 模型和调查原始信号的功能。对于生产环境中的修饰碱基识别,建议使用 Dorado <https://github.com/na…...

MySQL中将一个字符串字段按层级树状展开

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 需求1.分析2.实现3.思路刨析表结构和数据 需求 数据库中有个字段如下 如何将其转换为如下形式&#xff1a; 1.分析 1.他的层级个数是不确定的&#xff0c;也就是说有的有2层有的有5…...

vue面试题8|[2024-11-14]

问题1&#xff1a;什么是渐进式框架? vue.js router vuex element ...插件 vue.js 渐0 router 渐1 vuex 渐2 vue.js只是一个核心库&#xff0c;比如我再添加一个router或者vuex&#xff0c;不断让项目壮大&#xff0c;就是渐进式框…...

ARM(安谋) China处理器

0 Preface/Foreword 0.1 参考博客 Cortex-M23/M33与STAR-MC1星辰处理器 ARM China&#xff0c;2018年4月established&#xff0c;独立运行。 1 处理器类型 1.1 周易AIPU 1.2 STAR-MC1&#xff08;星辰处理器&#xff09; STAT-MC1&#xff0c;主要为满足AIOT应用性能、功…...

基于python Django的boss直聘数据采集与分析预测系统,爬虫可以在线采集,实时动态显示爬取数据,预测基于技能匹配的预测模型

本系统是基于Python Django框架构建的“Boss直聘”数据采集与分析预测系统&#xff0c;旨在通过技能匹配的方式对招聘信息进行分析与预测&#xff0c;帮助求职者根据自身技能找到最合适的职位&#xff0c;同时为招聘方提供更精准的候选人推荐。系统的核心预测模型基于职位需求技…...

MATLAB实现GARCH(广义自回归条件异方差)模型计算VaR(Value at Risk)

MATLAB实现GARCH(广义自回归条件异方差)模型计算VaR(Value at Risk) 1.计算模型介绍 使用GARCH&#xff08;广义自回归条件异方差&#xff09;模型计算VaR&#xff08;风险价值&#xff09;时&#xff0c;方差法是一个常用的方法。GARCH模型能够捕捉到金融时间序列数据中的波…...

深入Linux基础:文件系统与进程管理详解

在Linux运维领域&#xff0c;文件系统和进程管理是两个至关重要的基础知识。理解它们的原理和实际操作&#xff0c;不仅有助于我们更高效地管理服务器&#xff0c;还能快速定位问题、优化性能。本文将带你全面了解这两大模块&#xff0c;并配以示例代码进行讲解&#xff0c;帮助…...

百度app制作网站/买链接网

近期在做爬虫时有时会遇到网站只提供pdf的情况&#xff0c;这样就不能使用scrapy直接抓取页面内容了&#xff0c;只能通过解析PDF的方式处理&#xff0c;目前的解决方案大致只有pyPDF和PDFMiner。因为据说PDFMiner更适合文本的解析&#xff0c;而我需要解析的正是文本&#xff…...

高校建设网站的特色/百度搜索量最大的关键词

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/83316191 LiveVideoStackCon 2018音视频技术大会上有哪些高光时刻以及技术与行业新趋势&#xff1f;本文试图通过大会主编的视角&#…...

网站后台怎么更新/西安网站设计开发

JAVA - Quarz 定时任务 前言 在开发过程中&#xff0c;我们会用定时任务来执行一些操作&#xff0c;例如定时去捞取流水重试业务、定时去消息中间件获取消息等等相关需求 简单的定时任务实现可以借助Spring提供的 Scheduled 注解 详细看 Spring 原理之 Scheduled 如果涉及到…...

玩弄已婚熟妇做爰网站/网络营销有哪些例子

C#自定义Winform无边框窗体 在实际项目中&#xff0c;WinForm窗体或者控件不能满足要求&#xff0c;所以就需要自己设计窗体等&#xff0c;当然设计界面可以用的东西很多&#xff0c;例如WPF、或者一些第三方的库等。本例中将采用WinForm设计一个扁平美观的窗体。 上一篇中我们…...

电子商务网站建设专业主修课程/天津网络广告公司

STC新型单片机的ISP程序设计 http://wenku.baidu.com/view/83bf034ec850ad02de804127.html 随着单片机技术的不断发展&#xff0c;IAP(In-Application-Programming)功能的支持越来越普遍&#xff0c;这给应用系统程序代码升级带来了极大的方便。但是&#xff0c;ISP(In-System…...

北京市住房和城乡建设委官方网站/怎么快速推广app

以下是使用C语言编写的计算皮球自由落体的程序: #include <stdio.h>int main() {float height = 100; // 皮球初始高度为100米float distance = height; // 皮球下落的距离float rebound = height; // 皮球反弹的高度// 循环计算皮球第1次到第10次落地的情况for (int…...