Files
HelixJump/Assets/Scripts/AudioScripts/AudioController.cs
2025-12-15 17:49:08 -08:00

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();
}