using UnityEngine;

// Этот скрипт будет единственным в своем роде и не будет уничтожаться при перезагрузке сцены
public class AudioManager : MonoBehaviour
{
    public static AudioManager Instance { get; private set; }

    [Header("Audio Clips")]
    public AudioClip backgroundMusic;
    public AudioClip coinSound;
    // Сюда можно будет добавить звуки прыжка, слайда, смерти и т.д.

    private AudioSource musicSource;
    private AudioSource sfxSource;

    private void Awake()
    {
        // Реализация паттерна Singleton
        if (Instance != null && Instance != this)
        {
            Destroy(gameObject);
            return;
        }
        Instance = this;
        DontDestroyOnLoad(gameObject);

        // Создаем два компонента AudioSource
        musicSource = gameObject.AddComponent<AudioSource>();
        sfxSource = gameObject.AddComponent<AudioSource>();

        // Настраиваем источник для музыки
        musicSource.loop = true;
        musicSource.playOnAwake = false;
    }

    void Start()
    {
        // Запускаем фоновую музыку
        if (backgroundMusic != null)
        {
            musicSource.clip = backgroundMusic;
            musicSource.Play();
        }
    }

    // Публичный метод для проигрывания звука монеты
    public void PlayCoinSound()
    {
        if (coinSound != null)
        {
            // PlayOneShot позволяет проигрывать звук, не прерывая другие эффекты
            sfxSource.PlayOneShot(coinSound);
        }
    }
}
