UE4游戏保存

这篇具有很好参考价值的文章主要介绍了UE4游戏保存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在游戏运行过程中由于某些事情需要暂停一下游戏,那就需要把游戏当前的进度保存起来,下次打开的时候还可以再次玩,我们这里主要保存的就是。所有需要有一个游戏保存的机制。UE4提供了这样的机制。

  1. 首先新建一个类继承在SaveGame,命名为FirstSaveGame
    ue4 存档,UE,ue4,游戏,加载游戏,保存游戏
  2. 打开VS2019编辑代码
// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/SaveGame.h"
#include "FirstSaveGame.generated.h"

/**
 * 用来保存游戏的结构体
 */

USTRUCT(BlueprintType)
struct FCharacterStates {
	GENERATED_BODY()

	UPROPERTY(VisibleAnywhere, Category="SaveGameData")
	float heath;//角色健康值

	UPROPERTY(VisibleAnywhere, Category = "SaveGameData")
	float maxHeath;//角色的最大健康值

	UPROPERTY(VisibleAnywhere, Category = "SaveGameData")
	float stamina;//耐力值

	UPROPERTY(VisibleAnywhere, Category = "SaveGameData")
	float maxStamina;//最大耐力值

	UPROPERTY(VisibleAnywhere, Category = "SaveGameData")
	int32 coinsCount;//金币数量

	UPROPERTY(VisibleAnywhere, Category = "SaveGameData")
	FVector loaction;//角色的位置

	UPROPERTY(VisibleAnywhere, Category = "SaveGameData")
	FRotator rotation;//角色旋转
};

UCLASS()
class FIRSTPROJECT_API UFirstSaveGame : public USaveGame
{
	GENERATED_BODY()
public:
	UFirstSaveGame();

	//Category 必须设置为Basic, 否则无法保存游戏
	UPROPERTY(VisibleAnywhere, Category = Basic)
	FString playerName = TEXT("aaa");

	UPROPERTY(VisibleAnywhere, Category = Basic)
	uint32 userIndex = 0;

	UPROPERTY(VisibleAnywhere, Category = Basic)
	FCharacterStates characterState;
};

// Fill out your copyright notice in the Description page of Project Settings.


#include "FirstSaveGame.h"

UFirstSaveGame::UFirstSaveGame() {

}
  1. 在角色类中AMainCharacter中添加保存和加载函数
	UFUNCTION(BlueprintCallable)
	void saveGame();

	UFUNCTION(BlueprintCallable)
	void loadGame();
void AMainCharacter::saveGame() {
	UFirstSaveGame* saveGameInstance = Cast<UFirstSaveGame>(UGameplayStatics::CreateSaveGameObject(UFirstSaveGame::StaticClass()));
	saveGameInstance->characterState.heath = health;
	saveGameInstance->characterState.maxHeath = maxHeath;
	saveGameInstance->characterState.stamina = stamina;
	saveGameInstance->characterState.maxStamina = maxStamina;
	saveGameInstance->characterState.coinsCount = coinsCount;
	saveGameInstance->characterState.loaction = GetActorLocation();
	saveGameInstance->characterState.rotation = GetActorRotation();

	UGameplayStatics::SaveGameToSlot(saveGameInstance, saveGameInstance->playerName, saveGameInstance->userIndex);
}

void AMainCharacter::loadGame() {
	UFirstSaveGame* loadGameInstance = Cast<UFirstSaveGame>(UGameplayStatics::CreateSaveGameObject(UFirstSaveGame::StaticClass()));
	loadGameInstance = Cast<UFirstSaveGame>(UGameplayStatics::LoadGameFromSlot(loadGameInstance->playerName, loadGameInstance->userIndex));

	health = loadGameInstance->characterState.heath;
	maxHeath = loadGameInstance->characterState.maxHeath;
	stamina = loadGameInstance->characterState.stamina;
	maxStamina = loadGameInstance->characterState.maxStamina;
	coinsCount = loadGameInstance->characterState.coinsCount;
	
	SetActorLocation(loadGameInstance->characterState.loaction);
	SetActorRotation(loadGameInstance->characterState.rotation);
}
  1. 在AMainCharacter的蓝图类中,设置设置按键o加载和p保存
    ue4 存档,UE,ue4,游戏,加载游戏,保存游戏

aaa文章来源地址https://www.toymoban.com/news/detail-516950.html

到了这里,关于UE4游戏保存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于ue4 射击游戏架构设计

    传统mmo的服务器架构 网关---游戏逻辑服---游戏db服 网关--- 游戏逻辑服---关系服务器master 其结构简单,方便维护,但是在应对射击游戏时候暴露出很大的缺陷 但是随着大dau产品的像和平精英等游戏问世 腾讯主要的服务器是基于tbus4j,基于共享内存+ socket的数据交互,该框架的

    2024年02月02日
    浏览(61)
  • 【虚幻引擎】UE4 同步和异步资源加载(软引用)

    虚幻引擎给我们提供了两种引用,一个是硬引用。软引用通常是仅储存资源对象的资源路径没有与资源产生耦合关系的引用(软引用加载到内存中,引用对象不会被加载到内存中,只有在需要的时候才会被加载进内存中)。硬引用则是拥有资源对象实际成员变量,直接与资源对

    2024年02月01日
    浏览(105)
  • 启动 UE4编辑器报 加载 Plugin 失败

    启动 UE4编辑器报 加载 Plugin 失败,报如下错误: Plugin ‘SteamVR’ failer to load because module ‘SteamVR’ could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project. 方法一: 在 UE4 安装目录/Engin/Plugins 中找到该插件的目录,修改 SteamVR.uplugin 文件

    2024年04月27日
    浏览(41)
  • UE4网络图片加载库(带内存缓存和磁盘缓存)

    UE4网络图片加载库,带内存缓存和磁盘缓存,支持自定义缓存大小,支持蓝图和C++代码调用 KeImageNet.h

    2024年04月27日
    浏览(34)
  • UE4实现截屏并保存到相册Android/iOS兼容

    通过Edit-Plugins-NewPlugin创建3个空的Plugin: MyNative插件,实现截屏功能,并提供对外调用的接口 MyNativeAndroid插件,实现Android端保存图片到相册功能 MyNativeIos插件,实现iOS端保存图片到相册功能 1.在MyNative.uplugin注册引用到2个插件MyNativeAndroid和MyNativeIos 2.在MyNative.Build.cs分平台引用

    2024年02月15日
    浏览(50)
  • UE4 c++保存asset实例(含创建自定义Asset类)

    该文档的目标是创建一个uasset文件,用来保存类的实例,而不是蓝图类,类似存储在内容中的图片。 该文档是实践记录,具体理论查看参考。 如果要通过C++创建蓝图类,可以先新建C++类,然后在UE编辑器中有 C++ Classes 文件夹,进入后找到自己新建的C++类,右键创建蓝图类即

    2024年02月03日
    浏览(45)
  • 【UE4 塔防游戏系列】10-防御塔升级

    目录 效果 步骤 一、根据防御塔等级修改子弹伤害 二、根据防御塔等级修改子弹速度 三、根据防御塔等级修改检测半径 四、根据防御塔等级修改子弹颜色 五、根据防御塔等级修改换弹时间   一、根据防御塔等级修改子弹伤害 1. 打开“TowerBaseBullet_Child”,新建整型变量“

    2024年02月15日
    浏览(54)
  • UE4初学者设计小游戏(一)

    目录 一、设计简介及故事概要 二、环境设计与场景搭建 1. 将天空球改成黑夜 1 2. 通过画刷(BSP)搭建逃脱石头屋 2 3. 添加地形 5 4. 添加氛围元素 5 5. 感应灯 7 三、游戏机关蓝图设计 1.手电筒设计 8 2.设计开关门 9 6. 天梯设计 12 7. 加血装置 13 四、UI设计 2. 开始界面 14 3. 暂停

    2024年02月06日
    浏览(45)
  • UE4 回合游戏项目 01- 创建人物-玩家角色

    步骤: 1.下载游戏资源,链接:https://pan.baidu.com/s/1l2hpeEtIoFcUC4vAhut-ig 提取码:wlcp 2.解压第一节课资源 双击打开项目:  3.新建一个空白工程  设置好项目的存储路径和项目名  4.打开含有游戏资源的虚幻编辑器,右键点击内容,选择迁移  将所有的游戏资源迁移到新项目中

    2024年02月08日
    浏览(68)
  • UE4大场景解决方案 ——Pak的打包与加载

    1.cook Content烘焙uasset文件 2.UnrealPak打包Pak文件 3.FPakFile、FPakPlatformFile从Pak文件中遍历文件StaticLoadObject加载特定类型的UObject 4.SpawActor在世界中创建物体 先将我们要打包的资源放在一起,如下: 需要打包pak的内容 如果希望共享网格贴图等资源,也可以单独导出Test_01这个BP。 但

    2023年04月08日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包