using UnityEngine; using System.Collections; public class SuaraHomeScreen : MonoBehaviour { [Header("=== DUA SPEAKER SAJA ===")] public AudioSource speakerNarator; public AudioSource speakerSFX; [Header("=== KASET SUARA ===")] public AudioClip kasetNarator; public AudioClip kasetKlik; [Header("=== PENGATURAN WAKTU ===")] [Tooltip("Berapa detik narator harus nunggu sebelum ngomong?")] public float waktuTungguNarator = 1.5f; // ========================================== // INI GEMBOKNYA (Biar gak bocor) // ========================================== private bool bolehBunyi = true; void Start() { // Pastikan gembok terbuka setiap kali layar ini pertama kali muncul bolehBunyi = true; // Panggil sistem jeda saat layar pertama dibuka StartCoroutine(JedaPutarNarator()); } IEnumerator JedaPutarNarator() { // 1. Tunggu dulu sesuai angka detik yang bos atur yield return new WaitForSeconds(waktuTungguNarator); // 2. CEK GEMBOK: Kalau layarnya masih aktif (belum dipencet kembali), baru ngomong if (bolehBunyi == true) { PutarNarator(); } } public void BunyiKlik() { if (speakerSFX != null && kasetKlik != null) speakerSFX.PlayOneShot(kasetKlik); } public void PutarNarator() { if (speakerNarator != null && kasetNarator != null) speakerNarator.PlayOneShot(kasetNarator); } public void TombolMuteMusik() { if (MusikAbadi.instance != null) { MusikAbadi.instance.MuteMusik(); } BunyiKlik(); } // ========================================== // FUNGSI UNTUK TOMBOL PINDAH / KEMBALI // ========================================== public void HentikanSuara() { // 1. Langsung gembok (biar kalau hitungan 1.5 detik habis, dia batal ngomong) bolehBunyi = false; // 2. Batalkan paksa sistem jeda StopAllCoroutines(); // 3. Matikan suara yang sudah terlanjur ngoceh if (speakerNarator != null) { speakerNarator.Stop(); } } }