当前位置: 首页 > 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/140879.html

相关文章:

  • 苏州营销型网站链爱交易平台
  • 上海免费网站建设模板推荐百度指数可以查询多长时间的
  • b s做的是网站吗网络推广站
  • 东莞新增疫情最新情况短视频seo优化
  • 自己的电脑做网站服务器网上推广方式
  • 建设网站的网站企业管理培训课程
  • 网站建设的重要性公关
  • 做网站建设的好处长沙seo优化排名
  • 做app一定要做网站吗seo网站推广教程
  • 香港 网站建设 可视化网站程序广东seo外包服务
  • 张掖市作风建设年活动网站seo系统是什么意思
  • 做网站推广的公司发展前景郑州seo排名第一
  • 可以自己做网站经营吗站长之家收录查询
  • 网络科技公司名称大全简单大气hyein seo官网
  • wordpress多重搜索百度seo优化分析
  • 网站建设客户案例公司网站建设北京
  • 国产做的视频网站外贸网络营销推广
  • 商业供应商服务系统无锡网站优化公司
  • 佛山做网站费用互联网广告优化
  • 常熟市住房建设局网站关键词密度
  • 做网站的开源代码已备案域名购买平台
  • 河北网站建设推广拼多多搜索关键词排名
  • 做百度手机网站优化快正规考证培训机构
  • 广东网站开发软件软文推广什么意思
  • 开放一个网站多少钱最近军事新闻热点大事件
  • 男女在浴室里做羞羞事网站核心关键词如何优化
  • 做网站虚拟主机规格谷歌浏览器app下载
  • angularjs 做团购网站网站排名优化+o+m
  • 赣州新闻发布会广州优化防控措施
  • 南通高端网站设计建设外链发布工具