虚幻吧 关注:54,851贴子:8,261
  • 0回复贴,共1

虚幻5存档系统原理

只看楼主收藏回复

如题,这个文章主要讲解存档系统的实现原理,下面直接步入正题
文章本来在b站发的,直接复制过来了,所以可能有些地方读着有点奇怪,插入的视频我就没往这里塞,想看的去b站搜我
我们把它分成几个部分来讲
(1)savegame类
你可以将它理解为一个可以永久存储变量的类,当这个类中的变量被赋予值后,这时在类中执行“将游戏保存到插槽”节点即可将这些变量的值存入存档;下一次运行时执行“从插槽加载游戏”节点即可将存档中的变量值赋予类中相对应的变量;而当执行“删除插槽中的游戏”时即会从存档中删除数据.
其中不同插槽名字储存不同数据,如:
保存节点中的slotname填写A,那么想要读取这个数据,在下次读取时就要在读取节点的slotname中填写A,删除同理.
简单情况下我们通常创建一个字符串变量SavedSlotName,默认值填写SlotName并调用这个变量当做节点填写的slotname即可.
(2)玩家、savegame类与用户界面之间的通信
当玩家类开始运行时,我们用“is valid”节点检测是否有存档,如果有则读取并将变量赋予到玩家类的相应变量中,这时用户界面即可cast to玩家并获取相应变量(如玩家语种、名字等)并显示出来;但如果没有存档,玩家类就要创建一个注册界面.
注册界面会要求输入语种、名字等内容,点击注册按钮的一瞬间,该页面cast to玩家类并执行保存游戏函数并将获取到的玩家信息传给玩家类的相应变量,该保存函数会将变量值再赋予savegame类,并将游戏保存到插槽(注意:保存后要立即刷新至已注册用户界面并读取变量).
删除游戏这是用户点击删除按钮后,玩家类执行删除函数,该函数会在savegame类中执行删除游戏(注意:删除后要立即刷新至未注册用户界面并将变量设回默认值或空).


IP属地:北京来自Android客户端1楼2022-11-26 19:16回复