2-24 控件切换器、多存档、存档日期、游戏时长_哔哩哔哩_bilibili
目录
1.多存档
利用结构体数组,让我的存档蓝图,实现多存档。
创建结构体,并命名为存档结构,(这里的结构体和C++中结构体概念一样,就是利用已有的数据类型(整形,浮点型,字符型等),组成自己自定义的结构体类型)

定义我们的结构体,存储结构定义为:等级(整数),当前经验(浮点),存档日期(文本)类型。

打开我的蓝图,添加存档结构的变量,并定义为数组。
之前的存档蓝图只能存一份等级,经验,存档日期,现在可以存下一个(等级,经验,存档日期)打包好的数组,我们可以通过这个数组的下标,拿到我们想要的哪一个存档。
2.控件切换器
现在需要使用控件切换器,实现点击加载游戏时,实现展示:我的存档---存档结构---每一个存档信息的功能。
打开开始菜单UI组件蓝图,为我们的开始菜单画布包裹一层控件切换器

在控件切换器中,新加一个画布和背景模糊组件。
单击响应时间(加载游戏按钮),当单击加载游戏按钮的时候,让控件切换器,切换到第二个画布(索引从0开始,第二个画布就是索引为1,index==1)

并且在读档画布左上方添加,返回按钮。

并设置这个按钮的单击响应事件为:使用控件切换器,切换到主菜单(index==0)
现在编译运行游戏,单击加载游戏会跳转到,只有模糊一片的页面,点击返回会跳转到主界面。


3.滚动框设计存档列表
3.1滚动框的样式设计
使用滚动框组件,样式设计
在读档画布上添加滚动框组件,并命名为存档列表。

为存档列表添加覆层
在覆层下面添加一张图像,并设置为浅黄色
3.2存档子项的设计
按照下面的样式设计,存档子项

通过父项的存档列表,遍历出每一条存档数据的索引,并告诉存档子项具体的索引值,存档子项根据这些信息,提取到该子项对应的存档数据:本条存档的数据
父项将存档信息和对应的索引传递过来:

在存档列表界面点击返回,不仅要返回到主界面还要清除所有的子项,防止存档的重复显示。

3.3我的游戏实例的更改
为游戏实例添加存档索引,告诉主角在读档的时候使用哪条存档

3.4主角蓝图的修改
3.4.1主角的读档初始化
首先时主角开始时,如何从存档中读取数据

首先从游戏实例中判断是否需要读档

随后对我们的主角进行还原

就算我们选择开始游戏进入游戏,但是如果插槽中已经有存档了,我们依旧需要对这些存档进行读取,并保存在我的存档对象中,但是如果读取存档失败,说明历史中没有存档,这个时候需要新建一个我的存档对象。
3.4.2主角的保存存档



3.5存档子项变量的绑定
绑定存档子项显示的那些变量




3.6点击存档子项,跳转功能的实现
重载点击子项按钮的点击事件

如此便实现了本节所有功能