/
arti4
/
CourseWork
Обзор
Документация
Войти
/
arti4
/
CourseWork
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Scriptes/MusicManager.cs
98 строк
2 KB
arti4
Загрузить файлы в «Scriptes»
01 июн 2025, 11:57
01 июн 2025, 11:57
9c49e8f
Код
Авторство
О чём код?
using UnityEngine; using UnityEngine.SceneManagement; public class MusicManager : MonoBehaviour { public AudioSource audioSource; public AudioClip mainMenuMusic; public AudioClip level1Music; public AudioClip level2Music; public AudioClip level3Music; public AudioClip victoryMusic; private static MusicManager instance; private bool victoryMusicPlayed = false; void Start() { PlayMusic(mainMenuMusic); } void Update() { if (instance == null) { instance = this; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } if (audioSource == null) { audioSource = GetComponent<AudioSource>(); } SceneManager.sceneLoaded += OnSceneLoaded; } //��������������� ������ �� ������� void OnSceneLoaded(Scene scene, LoadSceneMode mode) { victoryMusicPlayed = false; switch (scene.name) { case "SampleScene": PlayMusic(mainMenuMusic); break; case "Level 1": PlayMusic(level1Music); break; case "Level 2": PlayMusic(level2Music); break; case "Level 3": PlayMusic(level3Music); break; default: break; } } //������������ ������ void PlayMusic(AudioClip clip) { if (audioSource != null && audioSource.clip != clip) { audioSource.clip = clip; } if (audioSource != null && !audioSource.gameObject.activeSelf) { audioSource.gameObject.SetActive(true); } if (audioSource != null && audioSource.isActiveAndEnabled) { if (!audioSource.isPlaying) { audioSource.Play(); } } } //��������������� ������ ������ public void PlayVictoryMusic() { if (!victoryMusicPlayed) { PlayMusic(victoryMusic); victoryMusicPlayed = true; } } //����� ����� ��������������� public void ResetVictoryMusicFlag() { victoryMusicPlayed = false; } }