当前位置: 首页 > wzjs >正文

广州市政府网站集约化建设方案四川旅游seo整站优化站优化

广州市政府网站集约化建设方案,四川旅游seo整站优化站优化,创建购物网站多少钱,杭州哪家公司可以做网站🎯 目标: ✅ 掌握 UE5 SaveGame 存档系统 ✅ 在 C 创建存档类,存储游戏数据 ✅ 实现存档 & 读取功能,让游戏状态可持久化 ✅ 在 BP_PlayerCharacter 里实现: * 游戏开始时自动加载存档 * 玩家受到伤害时自动存档 …

🎯 目标:

✅ 掌握 UE5 SaveGame 存档系统
✅ 在 C++ 创建存档类,存储游戏数据
✅ 实现存档 & 读取功能,让游戏状态可持久化
✅ 在 BP_PlayerCharacter 里实现:
* 游戏开始时自动加载存档
* 玩家受到伤害时自动存档

1️⃣ 为什么需要存档系统?

在游戏开发中,玩家的数据(如 角色血量、位置、游戏进度)需要存储,以便下次进入游戏时恢复。UE5 提供了 USaveGame 存档系统,可以快速存储 & 读取数据

📌 存档系统的核心逻辑:

  1. 创建 SaveGame 继承类,定义需要存储的数据
  2. 游戏开始时加载存档,恢复玩家状态
  3. 玩家受伤后自动存档,确保游戏数据不会丢失

2️⃣ 创建 SaveGame 存档类

🔹 1. 创建 MySaveGame C++ 类

  1. 在 UE5,点击 文件 → 新建 C++ 类
  2. 选择 SaveGame 作为父类
  3. 命名为 MySaveGame
  4. 点击 创建 并等待编译完成

🔹 2. 修改 MySaveGame.h

📌 定义存档数据(如玩家血量 & 位置)

#pragma once#include "CoreMinimal.h"
#include "GameFramework/SaveGame.h"
#include "MySaveGame.generated.h"UCLASS()
class MYGAME_API UMySaveGame : public USaveGame
{GENERATED_BODY()public:UMySaveGame();// 存储玩家血量UPROPERTY(VisibleAnywhere, Category = "SaveData")float PlayerHealth;// 存储玩家位置UPROPERTY(VisibleAnywhere, Category = "SaveData")FVector PlayerLocation;
};

📌 UPROPERTY(VisibleAnywhere) 让数据可在 蓝图 & 代码 访问,确保存档可用。

🔹 3. 修改 MySaveGame.cpp

📌 初始化存档数据

#include "MySaveGame.h"UMySaveGame::UMySaveGame()
{PlayerHealth = 100.0f; // 默认血量PlayerLocation = FVector::ZeroVector; // 默认位置
}

✅ 现在 MySaveGame 存档类已准备好,接下来我们来实现存档 & 读取功能!

3️⃣ 实现存档 & 读取功能

在 PlayerCharacter 里实现:

  1. SaveGameData() 方法 → 存储玩家数据
  2. LoadGameData() 方法 → 读取玩家数据

🔹 1. 修改 PlayerCharacter.h

📌 添加存档 & 读取方法

UFUNCTION(BlueprintCallable, Category = "SaveSystem")
void SaveGameData();UFUNCTION(BlueprintCallable, Category = "SaveSystem")
void LoadGameData();

🔹 2. 修改 PlayerCharacter.cpp

📌 实现 SaveGameData()

#include "PlayerCharacter.h"
#include "Kismet/GameplayStatics.h"
#include "MySaveGame.h"void APlayerCharacter::SaveGameData()
{// 创建存档对象UMySaveGame* SaveGameInstance = Cast<UMySaveGame>(UGameplayStatics::CreateSaveGameObject(UMySaveGame::StaticClass()));// 设置存档数据SaveGameInstance->PlayerHealth = Health;SaveGameInstance->PlayerLocation = GetActorLocation();// 保存到文件UGameplayStatics::SaveGameToSlot(SaveGameInstance, TEXT("PlayerSaveSlot"), 0);UE_LOG(LogTemp, Warning, TEXT("游戏存档完成!"));
}

📌 实现 LoadGameData()

void APlayerCharacter::LoadGameData()
{// 检查存档是否存在if (UGameplayStatics::DoesSaveGameExist(TEXT("PlayerSaveSlot"), 0)){// 加载存档UMySaveGame* LoadedGame = Cast<UMySaveGame>(UGameplayStatics::LoadGameFromSlot(TEXT("PlayerSaveSlot"), 0));if (LoadedGame){// 恢复数据Health = LoadedGame->PlayerHealth;SetActorLocation(LoadedGame->PlayerLocation);UE_LOG(LogTemp, Warning, TEXT("游戏存档已加载!"));}}else{UE_LOG(LogTemp, Warning, TEXT("没有找到存档文件"));}
}

✅ 现在 SaveGameData() 和 LoadGameData() 方法已经准备好,下一步在 BP_PlayerCharacter 里使用它们!

4️⃣ 在 BP_PlayerCharacter 中自动加载 & 存储存档

我们将在 BP_PlayerCharacter 蓝图中:

  • 游戏开始时自动加载存档
  • 玩家受伤后自动存档

🔹 1. 在 BP_PlayerCharacter 里添加 加载存档

  1. 打开 BP_PlayerCharacter
  2. 在 Event Graph 里
    • 添加 Event BeginPlay
    • 调用 LoadGameData()
      📌 最终蓝图逻辑:
      在这里插入图片描述

✅ 游戏开始时自动加载存档数据!

🔹 2. 在 BP_PlayerCharacter 里添加 受伤自动存档

  1. 找到 受伤逻辑(如 TakeDamage)
  2. 在受伤时,调用 SaveGameData()
    📌 最终蓝图逻辑:
    在这里插入图片描述

✅ 每次受伤都会自动保存数据,确保存档始终更新!

🎯 总结

✅ 使用 USaveGame 存储游戏数据(血量 & 位置)
✅ PlayerCharacter 实现 SaveGameData() 和 LoadGameData()
✅ BP_PlayerCharacter 游戏开始时自动加载存档
✅ BP_PlayerCharacter 受伤后自动存档

🎮 现在,你的游戏支持自动存档,玩家可以随时恢复游戏进度!🚀

http://www.dtcms.com/wzjs/483381.html

相关文章:

  • 网络游戏赚钱排行榜太原网站优化公司
  • 四川建设网站官网营销推广软件有哪些
  • 建站自学长春seo排名优化
  • 生态建设研究所网站seo服务收费
  • 徐州做网站的公司哪家好新手seo要学多久
  • 高端建设网站建设温州seo品牌优化软件
  • 九龙坡集团网站建设新浪新闻疫情
  • 东莞网站建设优化东莞信息发布推广平台
  • 如何在手机上做自己的网站网站有吗免费的
  • 有哪些做的比较精美的网站电子商务网站推广策略
  • 用电信固定IP做网站最佳搜索引擎磁力王
  • 做网站需要哪些素材1688官网
  • 做网站至少多少钱seo工具大全
  • 网站开发的策划书长沙网站优化效果
  • 建设局网站首页谷歌google地图
  • 怎么用ps做网站幻灯片自己建网站
  • 佛山网站建设网站制作公司哪家好企业在线培训系统
  • 南京网站建设的公司seo搜索引擎优化报价
  • 湖州住房和城乡建设局网站百度热搜排名
  • 400网站建设推广石家庄网站关键词推广
  • 韩国网站 后缀四川seo多少钱
  • 中央经济工作会议2021解读seo管理是什么
  • 网站建设 知乎app下载量推广
  • 做网站主播要什么条件世界500强企业名单
  • 做网站属于软件开发吗广东seo加盟
  • 百度上网站怎么做茂名seo顾问服务
  • 记事本网页制作教程专业全网优化
  • 新的网站建设技术营销手机都有什么功能啊
  • 做外贸的网站哪些是最好的app推广一手单
  • 有哪些制作网站的公司吗企业的互联网推广