study/first_study/Assets/Scripts/SoundManager.cs
jh04010421 95c50c478a 윤지호 | LostBits 기능 구현
20226.02.05 수정 (사운드 구현)
다음 작업 : 공중몬스터 구현, 태그 스킬 구현
2026-02-05 19:56:59 +09:00

53 lines
1.3 KiB
C#

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(); // 인자 없이 호출해야 함!
}
}
}