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(); sfxSource = gameObject.AddComponent(); // Настраиваем источник для музыки 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); } } }