如何用Unreal 4实现存档功能

发表于2015-09-24
评论0 3.6k浏览
实现存档功能的逻辑是:建立一个类型为SaveGame的蓝图文件
把所有需要保存的参数都放到这个文件里 
然后在其他蓝图中用命令把它储存到本地目录下


 
首先创建一个类型为SaveGame的蓝图文件



在这个文件下创建所有需要存储的参数


打开关卡蓝图(存储命令在其他蓝图里也可以写  但读取貌似只能写在关卡蓝图中  否则不识别)


这里我设置Alt+Q键为存档按键
然后创建[Creat Save Game Object]节点(注意节点下方的Class要选择为之前创建的SaveGame蓝图文件名 这是我们要储存的文件)
最后Return Value选择为可编辑



创建[Cast To "SaveGame蓝图文件名"]节点
这个节点的作用是把存档蓝图文件解析出来(或导入进去)  相当于zip压缩工具
Get前面可编辑的Return Value变量(这里我命名为“SvrSamuLoca”  就是Saver Samurai Location的缩写)连接到Object入口 


 
[UE4]实现存档功能
然后就是选择所要输入的信息和信息存储的变量   这里是一个Samu_2的NPC的位置信息存储到一个叫NPCSamuLoc的Vector(Vector类型都是黄色)变量中
然后右侧Save Game to Slot节点作用就是在文件夹中创建一个文件  并把以上这些信息都写入里面
注意这里Save Game Object应该连接前面“SvrSamuLoca“的变量
 
 

Slot Name这里填写所需要创建文件的名字
到这里  按下Alt+Q  这个叫做Samu_2的NPC位置信息就已经可以储存了(当然 读取存档的命令还没写)
 
 
为了Debug时便于确认是否实现存档  可以在右侧添加一个Print String  并连接 


Return Value 会自动添加转换节点显示True 或 False来表示是否成功存档
以上输入部分的命令也可以写在角色蓝图里


但读取 必须写在关卡蓝图中
这里有一个判断  判断是否有名为之前存储的文件名的文件([Dose Save Game Exist]节点下的Return value出口应该连接[Branch]节点的Condition入口)
如果有则读取该存档  之后的节点设置同之前存储一样
如果没有 则把False连接到之后的其他命令  例如把初始武器装配到角色手中初始化天气等等
 

这是读取命令的后续 
这里我给角色坐标的Z轴高度轴添加了一个10单位的固定值  让他从空中落下以防出生点被物体卡住落到地面以下
 
 
BUG 注意!
我使用的是4.4版的虚幻4  在4.3和之前的版本中都没有这个问题
这个问题就是:
当引擎关闭 再次打开后  所有SaveGame蓝图中调用的参数全部丢失地址(下图WARNING!显示)
必须手动再次拖拽导入  希望Epic公司能在后续版本能解决这个问题

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论