Ekosistem_Game/Assets/Script/Card.cs

52 lines
1.6 KiB
C#

using UnityEngine;
using UnityEngine.UI;
public class Card : MonoBehaviour
{
[Header("ID Pasangan (Isi manual di Inspector)")]
public int idPasangan;
private Image gambarHewan;
private GameObject coverBelakang;
private MemoryManager manager;
void Awake()
{
// ========================================================
// JURUS AUTO-FIX: Hapus Diri Sendiri Kalau Nyasar!
// ========================================================
if (transform.childCount < 2)
{
Debug.LogWarning("🚨 Script Card nyasar di objek: [" + gameObject.name + "]. Tenang bos, sudah saya hapus otomatis!");
Destroy(this); // Menghapus script ini dari objek yang salah
return;
}
gambarHewan = transform.GetChild(0).GetComponent<Image>();
coverBelakang = transform.GetChild(1).gameObject;
manager = Object.FindFirstObjectByType<MemoryManager>();
Button btn = GetComponent<Button>();
if (btn != null) btn.onClick.AddListener(KlikKartu);
}
public void KlikKartu()
{
// Cegah error kalau coverBelakang atau manager belum siap
if (coverBelakang == null || !coverBelakang.activeSelf || manager == null || manager.lagiNgecek) return;
manager.KartuDipilih(this);
}
public void BukaKartu()
{
if (coverBelakang != null) coverBelakang.SetActive(false);
if (gambarHewan != null) gambarHewan.gameObject.SetActive(true);
}
public void TutupKartu()
{
if (coverBelakang != null) coverBelakang.SetActive(true);
}
}