【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