using UnityEngine;

public class SoundManager : MonoBehaviour
{
    public static SoundManager instance;

    [Header("Audio Sources")]
    [SerializeField] private AudioSource bgmSource;
    [SerializeField] private AudioSource sfxSource;
    [SerializeField] private AudioSource footstepSource;

    PlayerController playerController;

    void Awake()
    {
        if (instance == null) instance = this;
        else Destroy(gameObject);
    }

    // 배경음악 재생/변경
    public void PlayBGM(AudioClip clip)
    {
        bgmSource.clip = clip;
        bgmSource.loop = true;
        bgmSource.Play();
    }

    // 효과음 한 번 재생 (여러 개 겹치기 가능)
    public void PlaySFX(AudioClip clip)
    {
        sfxSource.PlayOneShot(clip);
    }

    public void PlayFootstep(AudioClip clip)
    {
        // 이미 걷는 소리가 재생 중이고, 같은 클립이라면 다시 재생하지 않음 (자연스러운 루프 위해)
        if (footstepSource.isPlaying && footstepSource.clip == clip) return;

        footstepSource.clip = clip;
        footstepSource.loop = true; // 걷는 소리는 보통 반복되어야 함
        footstepSource.Play();
    }

    // 걷기 멈춤 함수 (수정됨)
    public void StopFootstep()
    {
        if (footstepSource.isPlaying)
        {
            footstepSource.Stop(); // 인자 없이 호출해야 함!
        }
    }
}
