71 lines
2.4 KiB
C#
71 lines
2.4 KiB
C#
using UnityEngine;
|
|
using System.Collections.Generic;
|
|
|
|
public class RecordDisplay : MonoBehaviour
|
|
{
|
|
public Transform contentParent;
|
|
public GameObject recordPrefab;
|
|
|
|
[Header("Daftar Gambar Menu")]
|
|
public List<Sprite> listGambarMenu;
|
|
|
|
// Tambahkan OnEnable supaya otomatis update tiap panel dibuka
|
|
void OnEnable()
|
|
{
|
|
RefreshDisplay();
|
|
}
|
|
|
|
public void RefreshDisplay()
|
|
{
|
|
// 1. Cek dulu barangnya ada nggak, biar gak error merah lagi
|
|
if (SaveSystem.instance == null)
|
|
{
|
|
Debug.LogWarning("SaveSystem belum ada! Pastikan mulai dari HomePage.");
|
|
return;
|
|
}
|
|
|
|
if (contentParent == null || recordPrefab == null)
|
|
{
|
|
Debug.LogError("Slot Content atau Prefab di Inspector belum diisi!");
|
|
return;
|
|
}
|
|
|
|
// 2. Bersihkan Content (Penting: Pakai cara yang lebih paksa)
|
|
foreach (Transform child in contentParent)
|
|
{
|
|
// Kita pakai DestroyImmediate kalau di Editor atau semacamnya,
|
|
// tapi untuk amannya kita pakai trik pindah folder/hilangkan visibility
|
|
child.gameObject.SetActive(false); // Sembunyikan dulu
|
|
Destroy(child.gameObject); // Baru hancurkan
|
|
}
|
|
|
|
// 3. Buat Kartu Baru berdasarkan data SaveSystem
|
|
for (int i = 0; i < SaveSystem.instance.data.allMenuStats.Length; i++)
|
|
{
|
|
// Ambil data dari gudang (SaveSystem)
|
|
var stats = SaveSystem.instance.data.allMenuStats[i];
|
|
|
|
// Buat kartu baru di dalam Content
|
|
GameObject newGo = Instantiate(recordPrefab, contentParent);
|
|
|
|
// Set skalanya ke 1 (Kadang kalau Instantiate suka jadi gede/kecil sendiri)
|
|
newGo.transform.localScale = Vector3.one;
|
|
|
|
RecordItemUI itemUI = newGo.GetComponent<RecordItemUI>();
|
|
|
|
if (itemUI != null)
|
|
{
|
|
// Ambil gambar dari list. Kalau listnya kurang, kasih null biar gak error.
|
|
Sprite gambarYangDipakai = (i < listGambarMenu.Count) ? listGambarMenu[i] : null;
|
|
|
|
// Kirim data ke kartu
|
|
itemUI.SetData(gambarYangDipakai,
|
|
stats.jumlahKunjungan.ToString(),
|
|
stats.highscore.ToString(),
|
|
stats.totalWaktu);
|
|
}
|
|
}
|
|
|
|
Debug.Log("Board Informasi Berhasil Diperbarui!");
|
|
}
|
|
} |