MIF_E31211846/Assets/Scripts/DisplayNamadanSkor.cs

91 lines
2.6 KiB
C#

using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using TMPro;
public class DisplayNamadanSkor : MonoBehaviour
{
public GameObject nameScorePrefab;
public Transform contentParent;
public static DisplayNamadanSkor Instance { get; private set; }
private void Awake()
{
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
}
}
private void Start()
{
TampilkanNamaDanSkor();
}
public void TampilkanNamaDanSkor()
{
foreach (Transform child in contentParent)
{
Destroy(child.gameObject);
}
List<string> namesList = AmbilDaftarNamaTersimpan();
List<int> scoresList = AmbilDaftarSkorTersimpan();
Debug.Log("Nama yang tersimpan: " + string.Join(", ", namesList));
Debug.Log("Skor yang tersimpan: " + string.Join(", ", scoresList));
if (namesList.Count > 0 && namesList.Count == scoresList.Count)
{
// Tambahkan entri baru untuk setiap nama dan skor
for (int i = 0; i < namesList.Count; i++)
{
GameObject newEntry = Instantiate(nameScorePrefab, contentParent);
NameScoreEntry entryScript = newEntry.GetComponent<NameScoreEntry>();
entryScript.SetEntry(namesList[i], scoresList[i].ToString());
Debug.Log($"Menambahkan entri: {namesList[i]} - {scoresList[i]}");
}
}
else
{
Debug.LogWarning("Tidak ada nama atau skor yang tersimpan atau jumlah nama dan skor tidak sama.");
}
}
private List<string> AmbilDaftarNamaTersimpan()
{
string savedNames = PlayerPrefs.GetString("NamaLengkapList", "");
return string.IsNullOrEmpty(savedNames) ? new List<string>() : savedNames.Split(',').ToList();
}
private List<int> AmbilDaftarSkorTersimpan()
{
List<int> scoresList = new List<int>();
List<string> namesList = AmbilDaftarNamaTersimpan();
foreach (string namaLengkap in namesList)
{
int score = PlayerPrefs.GetInt(namaLengkap + "Score", 0);
scoresList.Add(score);
Debug.Log($"Mengambil skor untuk {namaLengkap}: {score}"); // Tambahkan log untuk debug
}
return scoresList;
}
public void ResetData()
{
PlayerPrefs.DeleteAll();
foreach (Transform child in contentParent)
{
Destroy(child.gameObject);
}
}
}