61 lines
1.2 KiB
C#
61 lines
1.2 KiB
C#
using UnityEngine;
|
|
using VContainer;
|
|
|
|
public class AudioController : MonoBehaviour, IAudioController
|
|
{
|
|
[SerializeField] private AudioSource MusicSource;
|
|
[SerializeField] private AudioSource SFXSource;
|
|
|
|
public AudioClip backgroundMusicClip;
|
|
public AudioClip jumpClip;
|
|
public AudioClip deathClip;
|
|
public AudioClip btnPressedClip;
|
|
public AudioClip scoredClip;
|
|
|
|
[Inject] private IGameSession IgameSession;
|
|
|
|
private void Start()
|
|
{
|
|
MusicSource.clip = backgroundMusicClip;
|
|
MusicSource.loop = true;
|
|
MusicSource.Play();
|
|
}
|
|
|
|
|
|
public void PlaySfx(AudioClip clip)
|
|
{
|
|
if (!IgameSession.hasGameStarted) return;
|
|
SFXSource.ignoreListenerPause = true;
|
|
SFXSource.PlayOneShot(clip);
|
|
}
|
|
|
|
public void PlayJumpSound()
|
|
{
|
|
PlaySfx(jumpClip);
|
|
}
|
|
|
|
public void PlayDeathSound()
|
|
{
|
|
PlaySfx(deathClip);
|
|
}
|
|
|
|
public void PlayBtnPressedSound()
|
|
{
|
|
PlaySfx(btnPressedClip);
|
|
}
|
|
|
|
public void PlayScoredSound()
|
|
{
|
|
PlaySfx(scoredClip);
|
|
}
|
|
}
|
|
|
|
public interface IAudioController
|
|
{
|
|
void PlayJumpSound();
|
|
void PlayDeathSound();
|
|
void PlayBtnPressedSound();
|
|
void PlayScoredSound();
|
|
|
|
}
|