UE SaveGame

28. SaveGame

定义和功能
  • 定义
    • SaveGame 继承自 UObject,用于实现游戏存档的数据序列化与持久化。
  • 功能
    • 提供简易的序列化机制,能直接将蓝图或 C++ 中的属性保存到硬盘文件中。
    • 与 UGameplayStatics 配合,使用 SaveGameToSlot、LoadGameFromSlot 等接口实现存档和读档。
    • 默认使用 FGenericSaveGameSystem 进行本地文件的读写,亦可通过实现 ISaveGameSystem 自定义存储方式(云存档、网络等)。
设计理念
  • 面向游戏开发的简化操作
    • UE 通过 Blueprint 可视化接口,让开发者无需关心底层读写逻辑,即可完成玩家存档功能。
  • 与 UObject 的序列化机制深度结合
    • 得益于 UObject 的反射及序列化特性,任何在 SaveGame 中声明的变量都能自动参与存档与读档流程。
  • 灵活的扩展性
    • 通过 ISaveGameSystem 可以更换存档实现方式,适应不同平台或多种需求(如多人在线数据、云存储等)。
相关类关系
  • 与 UGameplayStatics
    • 提供静态方法(CreateSaveGameObject、SaveGameToSlot 等)调用 SaveGame 对象的序列化流程。
  • 与 GameInstance
    • GameInstance 中的临时全局数据若需长期持久化,可在合适时机调用 SaveGame 的相关接口进行存储或恢复。
  • 与 FGenericSaveGameSystem
    • 默认的存储实现类,实现了在本地文件系统上的读写操作。

游戏场景例子
  • 玩家进度存储
    • 将玩家的关卡进度、角色等级、背包物品等数据写入 SaveGame 并保存到磁盘,避免游戏退出后丢失。
  • 跨平台同步
    • 替换为自定义的 SaveGameSystem,让存档可同步到云端,在不同设备上保持玩家数据一致。
  • 快速存档与读档
    • 在关卡运行中,可以随时调用 SaveGameToSlot 进行快速存档,再通过 LoadGameFromSlot 读取该进度,恢复游戏状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值