35 lines
1017 B
C#
35 lines
1017 B
C#
using UnityEngine;
|
|
|
|
[RequireComponent(typeof(AudioSource))]
|
|
public class SoundManager : MonoBehaviour
|
|
{
|
|
public static SoundManager Instance { get; private set; }
|
|
|
|
[Header("Audio Clips")]
|
|
public AudioClip cardDrawClip;
|
|
public AudioClip cardDropClip;
|
|
public AudioClip cardFlipClip;
|
|
public AudioClip winClip;
|
|
public AudioClip loseClip;
|
|
|
|
private AudioSource _audioSource;
|
|
|
|
private void Awake()
|
|
{
|
|
Instance = this;
|
|
_audioSource = GetComponent<AudioSource>();
|
|
}
|
|
|
|
public void PlayDraw() => PlayClip(cardDrawClip, 1.0f);
|
|
public void PlayDrop() => PlayClip(cardDropClip, 0.95f);
|
|
public void PlayFlip() => PlayClip(cardFlipClip, 1.1f);
|
|
public void PlayWin() => PlayClip(winClip, 1.0f);
|
|
public void PlayLose() => PlayClip(loseClip, 0.85f);
|
|
|
|
private void PlayClip(AudioClip clip, float pitch)
|
|
{
|
|
if (clip == null) return;
|
|
_audioSource.pitch = pitch + Random.Range(-0.05f, 0.05f);
|
|
_audioSource.PlayOneShot(clip);
|
|
}
|
|
} |