91 lines
2.6 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|