using UnityEngine; public class Audio : MonoBehaviour { // Singleton Instance public static Audio instance; [Header("Sumber Suara")] public AudioSource musicSource; public AudioSource sfxSource; [Header("Koleksi Audio")] public AudioClip backgroundMusicUtama; public AudioClip backgroundMusicKuis; public AudioClip buttonClickSFX; void Awake() { // Logika "MusicAwet": Kalau udah ada Audio Manager, hancurkan yang baru. if (instance == null) { instance = this; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } } void Start() { // 1. Load Status Mute/Unmute dari Ingatan HP (PlayerPrefs) // Kalau 1 = Nyala (Mute false), Kalau 0 = Mati (Mute true) bool isMusicOn = PlayerPrefs.GetInt("MusicState", 1) == 1; bool isSFXOn = PlayerPrefs.GetInt("SFXState", 1) == 1; musicSource.mute = !isMusicOn; sfxSource.mute = !isSFXOn; // 2. Mulai Mainkan Musik PlayMusic(backgroundMusicUtama); } public void PlayMusic(AudioClip clip) { if (musicSource.clip == clip) return; // Kalau lagunya sama, jangan diulang musicSource.clip = clip; musicSource.Play(); } public void PlayQuizMusic() { PlayMusic(backgroundMusicKuis); } public void PlayMainMusic() { PlayMusic(backgroundMusicUtama); } public void PlayButtonSound() { // Cek dulu apakah SFX boleh bunyi? if (!sfxSource.mute) { sfxSource.PlayOneShot(buttonClickSFX); } } // Fungsi Pembantu buat dipanggil dari SettingsManager public void UpdateMuteState() { bool isMusicOn = PlayerPrefs.GetInt("MusicState", 1) == 1; bool isSFXOn = PlayerPrefs.GetInt("SFXState", 1) == 1; musicSource.mute = !isMusicOn; sfxSource.mute = !isSFXOn; } }