全屏企业网站欣赏,网站设计与建设,全球外贸采购网,如何拥有自己的网站域名2-23 游戏存档、读档、函数库_哔哩哔哩_bilibili
目录
1.存档蓝图
2.函数库
2.1保存存档 2.2读取存档#xff1a;
3.加载游戏#xff0c;保存游戏
3.1游戏实例对象
3.2 加载游戏 3.3保存游戏 这一节的内容较为错综复杂#xff0c;中间没有运行程序进行阶段性成果的验…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之间的转换插槽到存档蓝图到主角属性对应着游戏加载从硬盘到内存主角属性到存档蓝图到插槽对应着保存游戏从内存到硬盘