pgiz4/Assets/Scripts/AudioManager.cs
2026-03-24 20:20:32 +03:00

56 lines
1.8 KiB
C#

using UnityEngine;
// Этот скрипт будет единственным в своем роде и не будет уничтожаться при перезагрузке сцены
public class AudioManager : MonoBehaviour
{
public static AudioManager Instance { get; private set; }
[Header("Audio Clips")]
public AudioClip backgroundMusic;
public AudioClip coinSound;
// Сюда можно будет добавить звуки прыжка, слайда, смерти и т.д.
private AudioSource musicSource;
private AudioSource sfxSource;
private void Awake()
{
// Реализация паттерна Singleton
if (Instance != null && Instance != this)
{
Destroy(gameObject);
return;
}
Instance = this;
DontDestroyOnLoad(gameObject);
// Создаем два компонента AudioSource
musicSource = gameObject.AddComponent<AudioSource>();
sfxSource = gameObject.AddComponent<AudioSource>();
// Настраиваем источник для музыки
musicSource.loop = true;
musicSource.playOnAwake = false;
}
void Start()
{
// Запускаем фоновую музыку
if (backgroundMusic != null)
{
musicSource.clip = backgroundMusic;
musicSource.Play();
}
}
// Публичный метод для проигрывания звука монеты
public void PlayCoinSound()
{
if (coinSound != null)
{
// PlayOneShot позволяет проигрывать звук, не прерывая другие эффекты
sfxSource.PlayOneShot(coinSound);
}
}
}