84 lines
2.2 KiB
C#
84 lines
2.2 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using UnityEngine.SceneManagement; // Tambahkan ini
|
|
|
|
public class BackSound : MonoBehaviour
|
|
{
|
|
private AudioSource audioSource;
|
|
|
|
[Header("UI Settings")]
|
|
public Image musicButtonImage;
|
|
public Sprite musicOnSprite;
|
|
public Sprite musicOffSprite;
|
|
|
|
private bool isMuted = false;
|
|
|
|
private void Awake()
|
|
{
|
|
GameObject[] obj = GameObject.FindGameObjectsWithTag("Music");
|
|
if (obj.Length > 1)
|
|
{
|
|
Destroy(this.gameObject);
|
|
}
|
|
else
|
|
{
|
|
DontDestroyOnLoad(this.gameObject);
|
|
}
|
|
|
|
audioSource = GetComponent<AudioSource>();
|
|
}
|
|
|
|
// Fungsi otomatis yang jalan setiap kali Scene baru selesai dimuat
|
|
private void OnEnable()
|
|
{
|
|
SceneManager.sceneLoaded += OnSceneLoaded;
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
SceneManager.sceneLoaded -= OnSceneLoaded;
|
|
}
|
|
|
|
void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
|
{
|
|
// Ganti "HomePage" dengan nama scene menu utamamu yang ada di Build Settings
|
|
if (scene.name == "HomePage")
|
|
{
|
|
FindAndSetupButton();
|
|
}
|
|
}
|
|
|
|
void FindAndSetupButton()
|
|
{
|
|
// Cari object dengan nama "Button Music" di scene baru
|
|
GameObject btnObj = GameObject.Find("Button Music");
|
|
|
|
if (btnObj != null)
|
|
{
|
|
musicButtonImage = btnObj.GetComponent<Image>();
|
|
|
|
// Pasang ulang fungsi Klik-nya secara otomatis lewat kode
|
|
Button btn = btnObj.GetComponent<Button>();
|
|
btn.onClick.RemoveAllListeners(); // Bersihkan listener lama
|
|
btn.onClick.AddListener(ToggleMusic); // Pasang ToggleMusic
|
|
|
|
// Update visual tombol sesuai status terakhir (Muted atau tidak)
|
|
UpdateVisual();
|
|
}
|
|
}
|
|
|
|
public void ToggleMusic()
|
|
{
|
|
isMuted = !isMuted;
|
|
audioSource.mute = isMuted; // Pakai .mute lebih simpel untuk toggle
|
|
UpdateVisual();
|
|
}
|
|
|
|
void UpdateVisual()
|
|
{
|
|
if (musicButtonImage != null)
|
|
{
|
|
musicButtonImage.sprite = isMuted ? musicOffSprite : musicOnSprite;
|
|
}
|
|
}
|
|
} |