Ekosistem_Game/Assets/Script/DragBenda.cs

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
}
}