Raihan_TugasAkhir/Assets/Script/Suara/AudioManager.cs

63 lines
2.0 KiB
C#

using UnityEngine;
using System.Collections;
public class AudioManager : MonoBehaviour
{
[Header("Pengaturan Audio Source")]
[Tooltip("AudioSource khusus untuk suara efek klik (UI)")]
public AudioSource uiSource;
[Tooltip("AudioSource khusus untuk suara utama (Hewan/Buah)")]
public AudioSource animalSource;
[Header("Pengaturan Suara Efek")]
[Tooltip("Masukkan suara bubble ke sini. Hanya perlu diisi satu kali!")]
public AudioClip bubbleSound;
// Variabel untuk menyimpan proses urutan suara yang sedang berjalan
private Coroutine currentSequence;
// Fungsi ini akan dipanggil secara otomatis oleh masing-masing tombol
public void OnAnimalButtonClicked(AudioClip animalSound)
{
// 1. Hentikan urutan waktu sebelumnya jika pemain mengklik tombol lain dengan cepat
if (currentSequence != null)
{
StopCoroutine(currentSequence);
}
// 2. Hentikan suara utama sebelumnya agar tidak bertumpuk
animalSource.Stop();
// 3. Mulai urutan suara yang baru
currentSequence = StartCoroutine(PlaySoundSequence(animalSound));
}
private IEnumerator PlaySoundSequence(AudioClip animalSound)
{
// Mainkan suara efek (Bubble)
// Menggunakan PlayOneShot agar suara efek bisa beruntun jika diklik cepat
if (bubbleSound != null)
{
uiSource.PlayOneShot(bubbleSound);
}
// Tunggu jeda waktu 0.3 detik (bisa kamu sesuaikan)
yield return new WaitForSeconds(0.1f);
// Masukkan suara utama ke AudioSource lalu mainkan
if (animalSound != null)
{
animalSource.clip = animalSound;
animalSource.Play();
}
}
// Fungsi khusus untuk tombol biasa (tombol navigasi, menu, dll)
public void PlayBubbleSound()
{
if (bubbleSound != null && uiSource != null)
{
uiSource.PlayOneShot(bubbleSound);
}
}
}