using UnityEngine; using System.IO; public class SaveSystem : MonoBehaviour { public static SaveSystem instance; public SaveData data = new SaveData(); private string path; void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } path = Application.persistentDataPath + "/GemasSaveData.json"; LoadGame(); } [ContextMenu("Save Game")] public void SaveGame() { string json = JsonUtility.ToJson(data, true); File.WriteAllText(path, json); Debug.Log("Data Berhasil Disimpan"); } public void LoadGame() { if (File.Exists(path)) { string json = File.ReadAllText(path); data = JsonUtility.FromJson(json); Debug.Log("Data Berhasil Dimuat"); } else { InitializeNewData(); SaveGame(); } } // --- FUNGSI REVISI: UNTUK SIMPAN AKHIR GAME (KUNJUNGAN, SKOR, WAKTU) --- public void SimpanHasilGame(int indexMenu, int skorSesiIni, float durasiDetikSesiIni) { if (data == null || indexMenu >= data.allMenuStats.Length) return; // 1. Tambah jumlah kunjungan data.allMenuStats[indexMenu].jumlahKunjungan += 1; // 2. Akumulasi Skor (Skor lama + skor baru) data.allMenuStats[indexMenu].highscore += skorSesiIni; // 3. Akumulasi Waktu (Konversi detik ke mm:ss) string waktuLamaStr = data.allMenuStats[indexMenu].totalWaktu; int totalDetikLama = 0; if (!string.IsNullOrEmpty(waktuLamaStr) && waktuLamaStr.Contains(":")) { string[] parts = waktuLamaStr.Split(':'); totalDetikLama = (int.Parse(parts[0]) * 60) + int.Parse(parts[1]); } int totalDetikBaru = totalDetikLama + (int)durasiDetikSesiIni; int mins = totalDetikBaru / 60; int secs = totalDetikBaru % 60; data.allMenuStats[indexMenu].totalWaktu = string.Format("{0:00}:{1:00}", mins, secs); // Simpan perubahan SaveGame(); Debug.Log("Record Berhasil Diupdate untuk: " + data.allMenuStats[indexMenu].namaMenu); } // Fungsi lama tetap dipertahankan agar tidak error public void TambahSkor(int indexMenu, int skorBaru) { data.allMenuStats[indexMenu].highscore += skorBaru; SaveGame(); } void InitializeNewData() { data.allMenuStats[0] = new MenuStats { namaMenu = "Menu Belajar" }; data.allMenuStats[1] = new MenuStats { namaMenu = "Game Tangkap Sayur" }; data.allMenuStats[2] = new MenuStats { namaMenu = "Game Cocokkan Gambar" }; data.allMenuStats[3] = new MenuStats { namaMenu = "Game Susun Huruf" }; data.allMenuStats[4] = new MenuStats { namaMenu = "Game Quiz" }; } }