From 817c9bce5309ca81840bb9159c2a6beb40321195 Mon Sep 17 00:00:00 2001 From: Margaretha Olivia <margarethaolivia41@gmail.com> Date: Fri, 10 May 2024 13:13:29 +0700 Subject: [PATCH] feat: save data --- Assets/Scripts/PetData.cs | 0 Assets/Scripts/PetData.cs.meta | 11 +++++ Assets/Scripts/Player/PlayerData.cs | 0 Assets/Scripts/Player/PlayerData.cs.meta | 11 +++++ Assets/Scripts/SaveData.cs | 61 +++++++++++++++++++++--- 5 files changed, 77 insertions(+), 6 deletions(-) create mode 100644 Assets/Scripts/PetData.cs create mode 100644 Assets/Scripts/PetData.cs.meta create mode 100644 Assets/Scripts/Player/PlayerData.cs create mode 100644 Assets/Scripts/Player/PlayerData.cs.meta diff --git a/Assets/Scripts/PetData.cs b/Assets/Scripts/PetData.cs new file mode 100644 index 0000000..e69de29 diff --git a/Assets/Scripts/PetData.cs.meta b/Assets/Scripts/PetData.cs.meta new file mode 100644 index 0000000..9c45bed --- /dev/null +++ b/Assets/Scripts/PetData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1592109dfcbf6d944b8edad5e086dbb7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Player/PlayerData.cs b/Assets/Scripts/Player/PlayerData.cs new file mode 100644 index 0000000..e69de29 diff --git a/Assets/Scripts/Player/PlayerData.cs.meta b/Assets/Scripts/Player/PlayerData.cs.meta new file mode 100644 index 0000000..f758d6f --- /dev/null +++ b/Assets/Scripts/Player/PlayerData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9a00aafbb5f305f4a825d692b6dec5db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/SaveData.cs b/Assets/Scripts/SaveData.cs index 4b8ff91..28fec9f 100644 --- a/Assets/Scripts/SaveData.cs +++ b/Assets/Scripts/SaveData.cs @@ -2,12 +2,61 @@ using static UnityEditor.Progress; using System.Collections.Generic; using System; using System.Numerics; +using UnityEngine; [Serializable] -public class SaveData +public class SaveData : MonoBehaviour { - public Vector3 playerPosition; - public int playerHealth; - public List<Item> inventoryItems; - // ... other game data -} \ No newline at end of file + public PlayerData playerData = new PlayerData(); + + public void SaveToJson() + { + string savePlayerData = JsonUtility.ToJson(playerData); + string filePath = Application.persistentDataPath + "/savePlayerData.json"; + Debug.Log(filePath); + System.IO.File.WriteAllText(filePath, savePlayerData); + Debug.Log("save successful"); + } + + public void LoadFromJson() + { + string filePath = Application.persistentDataPath + "/savePlayerData.json"; + string savePlayerData = System.IO.File.ReadAllText(filePath); + + playerData = JsonUtility.FromJson<PlayerData>(savePlayerData); + Debug.Log("load successful"); + } +} + +[System.Serializable] +public class PlayerData +{ + public int currentLevel; + + // from PlayerHealth.cs + public int currentHealth; + public bool godMode; + + // from PlayerMovement.cs + public float speed; + public bool isDoubleSpeed; + + // from PlayerShooting.cs + public int damagePerShot; + public bool isOneHitKill; + + // from PlayerGold.cs + public int currentGold; + public bool isMotherlode; + + public List<PetData> pet = new List<PetData>(); +} + +[System.Serializable] +public class PetData +{ + public string type; + public int currentHealth; + public int damagePerShot; + public float speed; +} -- GitLab