52 lines
1.6 KiB
C#
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);
|
|
}
|
|
} |