創建 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; }