study/first_study/Assets/Scripts/SoundManager.cs

53 lines
1.3 KiB
C#
Raw Normal View History

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);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>
public void PlayBGM(AudioClip clip)
{
bgmSource.clip = clip;
bgmSource.loop = true;
bgmSource.Play();
}
// ȿ<><C8BF><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD>)
public void PlaySFX(AudioClip clip)
{
sfxSource.PlayOneShot(clip);
}
public void PlayFootstep(AudioClip clip)
{
// <20>̹<EFBFBD> <20>ȴ<EFBFBD> <20>Ҹ<EFBFBD><D2B8><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̰<EFBFBD>, <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD>̶<EFBFBD><CCB6><EFBFBD> <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
if (footstepSource.isPlaying && footstepSource.clip == clip) return;
footstepSource.clip = clip;
footstepSource.loop = true; // <20>ȴ<EFBFBD> <20>Ҹ<EFBFBD><D2B8><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ݺ<EFBFBD><DDBA>Ǿ<EFBFBD><C7BE><EFBFBD> <20><>
footstepSource.Play();
}
// <20>ȱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
public void StopFootstep()
{
if (footstepSource.isPlaying)
{
footstepSource.Stop(); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD>ؾ<EFBFBD> <20><>!
}
}
}