75 lines
2.0 KiB
C#
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);
|
|
}
|
|
}
|
|
} |