82 lines
2.5 KiB
C#
82 lines
2.5 KiB
C#
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
|
|
public class DragBenda : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
|
|
{
|
|
[Header("Identitas")]
|
|
public string idHewan;
|
|
|
|
[Header("Kaset Suara (Edukasi)")]
|
|
public AudioClip kasetNamaHewan; // Contoh: Narasi "Gajah"
|
|
public AudioClip suaraHewanIni; // Contoh: Suara asli gajah (trompet)
|
|
|
|
[HideInInspector] public Transform parentAwal;
|
|
[HideInInspector] public Vector3 posisiAwal;
|
|
[HideInInspector] public Vector3 scaleAwal;
|
|
private CanvasGroup canvasGroup;
|
|
|
|
void Start()
|
|
{
|
|
scaleAwal = transform.localScale;
|
|
canvasGroup = GetComponent<CanvasGroup>();
|
|
if (canvasGroup == null) canvasGroup = gameObject.AddComponent<CanvasGroup>();
|
|
}
|
|
|
|
public void OnBeginDrag(PointerEventData eventData)
|
|
{
|
|
posisiAwal = transform.position;
|
|
parentAwal = transform.parent;
|
|
|
|
transform.SetParent(transform.root);
|
|
transform.SetAsLastSibling();
|
|
|
|
canvasGroup.blocksRaycasts = false;
|
|
|
|
// ==========================================
|
|
// TAMBAHAN: NARATOR SEBUT NAMA HEWAN!
|
|
// ==========================================
|
|
GameManagerSiluet managerGame = FindObjectOfType<GameManagerSiluet>();
|
|
if (managerGame != null && kasetNamaHewan != null)
|
|
{
|
|
managerGame.speakerGame.PlayOneShot(kasetNamaHewan);
|
|
}
|
|
}
|
|
|
|
public void OnDrag(PointerEventData eventData)
|
|
{
|
|
transform.position = eventData.position;
|
|
}
|
|
|
|
public void OnEndDrag(PointerEventData eventData)
|
|
{
|
|
canvasGroup.blocksRaycasts = true;
|
|
|
|
if (transform.parent == transform.root)
|
|
{
|
|
transform.SetParent(parentAwal);
|
|
transform.position = posisiAwal;
|
|
transform.localScale = scaleAwal;
|
|
|
|
GameManagerSiluet managerGame = FindObjectOfType<GameManagerSiluet>();
|
|
if (managerGame != null)
|
|
{
|
|
managerGame.JawabanSalah();
|
|
}
|
|
}
|
|
}
|
|
|
|
// ==========================================
|
|
// FUNGSI KHUSUS: DIPANGGIL OLEH SLOT SILUET
|
|
// ==========================================
|
|
public void BerhasilMasukSiluet()
|
|
{
|
|
GameManagerSiluet managerGame = FindObjectOfType<GameManagerSiluet>();
|
|
if (managerGame != null)
|
|
{
|
|
// Kirim suara asli hewannya ke manager untuk diputar
|
|
managerGame.TambahSkor(suaraHewanIni);
|
|
}
|
|
|
|
this.enabled = false; // Matikan script drag agar tidak bisa ditarik lagi
|
|
}
|
|
} |