Files
Continentis/Assets/Scripts/MainGame/Audio/AudioManager.cs
SoulliesOfficial 61a397dd4c MOD!
2025-10-23 00:49:44 -04:00

75 lines
2.0 KiB
C#

using SLSFramework.General;
using SLSFramework.UModAssistance;
using UnityEngine;
namespace Continentis.MainGame
{
public partial class AudioManager : Singleton<AudioManager>
{
public AudioSource musicAudioSource;
public static AudioClip GetAudio(string audioID)
{
return ModManager.GetAsset<AudioClip>(audioID);
}
}
public partial class AudioManager
{
public static void PlayBGM(string bgmID)
{
AudioClip audioClip = GetAudio(bgmID);
if (audioClip != null)
{
Instance.musicAudioSource.clip = audioClip;
Instance.musicAudioSource.Play();
}
else
{
Debug.LogWarning($"AudioManager: AudioClip with ID '{bgmID}' not found.");
}
}
public static void PlayBGM(AudioClip bgmClip)
{
Instance.musicAudioSource.clip = bgmClip;
Instance.musicAudioSource.Play();
}
public static void ResumeBGM()
{
Instance.musicAudioSource.UnPause();
}
public static void PauseBGM()
{
Instance.musicAudioSource.Pause();
}
public static void StopBGM()
{
Instance.musicAudioSource.Stop();
}
}
public partial class AudioManager
{
public static void PlaySFX(string audioID, Vector3 position, float volume = 1f)
{
AudioClip clip = GetAudio(audioID);
if (clip != null)
{
AudioSource.PlayClipAtPoint(clip, position, volume);
}
else
{
Debug.LogWarning($"AudioManager: AudioClip with ID '{audioID}' not found.");
}
}
public static void PlaySFX(AudioClip sfxClip, Vector3 position, float volume = 1f)
{
AudioSource.PlayClipAtPoint(sfxClip, position, volume);
}
}
}