欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > UE5 蓝图学习计划 - Day 12:存储与加载

UE5 蓝图学习计划 - Day 12:存储与加载

2025/2/7 15:55:07 来源:https://blog.csdn.net/m0_37643873/article/details/145428175  浏览:    关键词:UE5 蓝图学习计划 - Day 12:存储与加载

在游戏开发中,存储(Save)与加载(Load) 系统至关重要,玩家需要能够保存游戏进度、角色状态、道具数据等信息,并在下次启动游戏时恢复它们。UE5 提供了 SaveGame 蓝图类,帮助开发者快速实现数据持久化。本篇文章将学习 存储系统的工作原理,并通过蓝图实现 角色状态(血量、分数)存储 与 数据读取,确保游戏进度不会丢失。

理论学习

  1. 什么是 SaveGame ?
    UE5 提供了 SaveGame 蓝图类 来管理数据存储:
    • 创建 SaveGame 对象,存储玩家的游戏数据。
    • 将数据保存到本地文件(自动存储到 Saved/SaveGames 文件夹)。
    • 加载存档,在游戏启动时恢复存储的数据。
  2. SaveGame 适合存储哪些数据?
    • 玩家状态(血量、得分、等级)。
    • 道具库存(背包内的道具)。
    • 关卡进度(已解锁的关卡、任务状态)。
    • 角色位置(重新进入游戏时恢复角色站立位置)。

实践任务:存储角色血量与分数

目标

  1. 存储角色数据
    • 角色的 血量(Health) 和 得分(Score) 可以被保存。
  2. 读取存档
    • 角色在游戏启动时,自动加载上次存档的血量和分数。

步骤 1:创建 SaveGame 蓝图

  1. 新建 SaveGame 类

    1. 在 Content Browser,右键 Blueprint Class。
    2. 在搜索框输入 SaveGame,选择 SaveGame 类。
    3. 命名为 BP_PlayerSave,然后双击打开。
      在这里插入图片描述
  2. 添加存储变量
    在 BP_PlayerSave 里,创建以下变量:

    • SavedHealth(Float):存储角色血量。
    • SavedScore(Integer):存储角色分数。
      在这里插入图片描述

步骤 2:创建存档逻辑

  1. 在角色蓝图 BP_PlayerCharacter 中添加存储功能
    1. 创建 SaveGame 实例

      • 在角色蓝图(BP_PlayerCharacter)的 Event Begin Play 事件中:
        在这里插入图片描述

      • 如果存档存在:

        • 调用 LoadGameFromSlot 并读取数据。
      • 如果存档不存在:

        • 创建新的 SaveGame 实例,并存储默认数据。
      • 将存档数据存放到变量中
        在这里插入图片描述

    2. 存档数据

      • 在角色受伤或获得分数时(用键盘按钮事件模拟),自动存储数据:
      • 这样,角色的血量和分数将在变化时被记录。
        在这里插入图片描述

步骤 3:创建加载逻辑

  1. 读取存档数据
    1. 在游戏启动时,从 SaveGame 文件加载数据:
    2. 设置角色数据
      • 读取 SavedHealth 和 SavedScore 并赋值给角色:
    3. 确保 UI 也同步更新
      • 如果游戏有 血量条和得分 UI,需要调用 UI 更新函数,让 UI 反映最新的数据。
        在这里插入图片描述

步骤 4:测试存储系统

  1. 启动游戏,按X键让角色受伤,观察血量减少,按P键获得分数,观察分数增加。
  2. 然后退出游戏。
  3. 重新启动游戏,观察角色血量和分数是否恢复到推出之前的状态。
    在这里插入图片描述

学习收获

通过今天的学习,你掌握了:

  1. 如何使用 SaveGame 蓝图类存储玩家数据。
  2. 如何读取 SaveGame 存档,在游戏启动时恢复角色状态。

下一步学习计划

接下来,我们将进入 综合项目实战阶段,整合所有已学知识,开发一个完整的 小型游戏项目!🚀

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com