【UE4 C++】 SaveGame 存档/读档


创建 SaveGame 类

  • 继承自 USaveGame

    UCLASS()
    class TIPS_API USimpleSaveGame : public USaveGame
    {
    	GENERATED_BODY()
    
    public:
    
    	UPROPERTY(EditAnywhere)
    		FString PlayerName;
    
    	UPROPERTY(EditAnywhere)
    		float PlayerHealth = 0.f;
    
    	UPROPERTY(EditAnywhere)
    		FTransform PlayerTrans;
    };
    

存档/读档

  • 原博客地址

  • 存档

    bool ADataDriveActor::SaveGame(const FString& Name, float Health, FTransform Transform)
    {
    	USimpleSaveGame* SaveGameIns = Cast<USimpleSaveGame>(UGameplayStatics::LoadGameFromSlot(TEXT("SaveGame"), 0));
    	if (!SaveGameIns)
    	{
    		SaveGameIns = Cast<USimpleSaveGame>(UGameplayStatics::CreateSaveGameObject(USimpleSaveGame::StaticClass()));
    	}
    	SaveGameIns->PlayerName = Name;
    	SaveGameIns->PlayerHealth = Health;
    	SaveGameIns->PlayerTrans = Transform;
    
    	return UGameplayStatics::SaveGameToSlot(SaveGameIns, TEXT("SaveGame"), 0);
    }
    
  • 读档

    bool ADataDriveActor::LoadSaveGame(FString& Name, float& Health, FTransform& Transform)
    {
    	USimpleSaveGame* SaveGameIns = Cast<USimpleSaveGame>(UGameplayStatics::LoadGameFromSlot(TEXT("SaveGame"), 0));
    	if (!SaveGameIns)
    	{
    		return false;
    	}
    	Name = SaveGameIns->PlayerName;
    	Health = SaveGameIns->PlayerHealth;
    	Transform = SaveGameIns->PlayerTrans;
    
    	UE_LOG(LogTemp, Warning, TEXT("%s\t %f\n %s"), *Name, Health, *Transform.ToString());
    	return true;
    }
    

    image


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM