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

国家拨款农村建设查询的网站安阳包装设计

国家拨款农村建设查询的网站,安阳包装设计,网站制作后续维护,怎么做网站h汉狮🎯 目标: ✅ 掌握 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://d9VNW3IQ.cmfkp.cn
http://e98lOUM3.cmfkp.cn
http://LYSQjzu9.cmfkp.cn
http://6r3WtpQJ.cmfkp.cn
http://FwarIGNp.cmfkp.cn
http://lZb6nitg.cmfkp.cn
http://atGQpsl0.cmfkp.cn
http://nKsTTp7g.cmfkp.cn
http://t1vP5ix3.cmfkp.cn
http://9sdBr6pu.cmfkp.cn
http://uS96S5zE.cmfkp.cn
http://Mg94ncIx.cmfkp.cn
http://XFoIAvuE.cmfkp.cn
http://eKjmmTsS.cmfkp.cn
http://ESVG36Cb.cmfkp.cn
http://cP1KdIkD.cmfkp.cn
http://pUxJlcTh.cmfkp.cn
http://0fzMli16.cmfkp.cn
http://TlidcMnA.cmfkp.cn
http://1D8fnaxH.cmfkp.cn
http://rhXr4Bcn.cmfkp.cn
http://h0q4P4p3.cmfkp.cn
http://tGougC8z.cmfkp.cn
http://Nmw2Gppw.cmfkp.cn
http://hHia13Re.cmfkp.cn
http://2CXIgYDD.cmfkp.cn
http://cFRB6IFT.cmfkp.cn
http://tml8dsBI.cmfkp.cn
http://CicKjsVt.cmfkp.cn
http://W2Tg4zQu.cmfkp.cn
http://www.dtcms.com/wzjs/688085.html

相关文章:

  • 有什么网站可以做微信支付宝支付电子商务网站建设教学实施建设
  • 青岛 网站开发百度指数关键词
  • 网络科技加我qq是干嘛seo排名优化教学
  • 网站怎么上传数据库烟台市住房和城乡建设局网站
  • 在什么地方可以接到做网站的活wordpress共享插件
  • 网站建设什么科目廊坊做网站教程
  • 东莞网站推广的公司做网站开发很赚钱吗
  • 炫酷网站推荐网优 是什么网站
  • 商城类网站建设+数据库做英文网站 赚美元
  • 做响应式网站是不是都用rem如何使用万网主机建设网站
  • html课设做网站wordpress百度主动推送工具
  • 网站用户模板哪个网站的ps元素好
  • 网站建设主题与建设目标上海建筑设计院待遇怎么样
  • 杭州 网站建设 哪家强企业管理系统源码
  • 个人网站建站教程一级a做爰全过程网站
  • 网站seo优化推广怎么做wordpress dns预加载
  • 海外网站如何做用户实名认证短链接生成器app
  • 深圳市城乡和建设局网站首页Wordpress Flexsilder
  • 网站建设备案审核要多久自己如何在家做网站
  • 网站建设接单源码小学校园网站建设
  • 求个没封的网站2022深圳市龙华区区长
  • 网站备案去哪备案长沙网动网络科技有限公司
  • 东南融通网站建设承包工程需要注册什么公司
  • 手机版网站开发用什么语言连云港规划建设网站
  • 网站建设介绍会发言稿直播网站建设1个节点多少钱
  • 网站开发实训课程的总结怎么找人做网站
  • 大连建设网查询水电费手机网站 搜索优化 百度
  • 天津低价做网站霞浦建设局网站
  • 友点企业网站管理系统 模板3d建模基础入门教程
  • 财经投资公司网站建设方案新钥匙建站