using UnityEngine; using TMPro; public class Music { public Music(SoundData data) { Main.OnGameStart += this.GameStart; this.data = data; } SoundData data; float loopVolume, musicVolume; float loopVolumeDelta, musicVolumeDelta; void GameStart(Main main) { main.musicSource.clip = data.musicTrack; main.musicSource.time = 0; } public void Fade(Main main) { if (main.boxUI.active) { musicVolumeDelta = -1; main.musicSource.Pause(); main.musicSource.volume = 0; } else if (main.playing && !main.musicSource.isPlaying) { musicVolumeDelta = 1; main.musicSource.Play(); } if (main.boxUI.menuMain.activeInHierarchy || main.boxUI.menuConfig.activeInHierarchy) { loopVolumeDelta = 3; } else { loopVolumeDelta = -3; } loopVolume = Mathf.Clamp01(loopVolume + Time.deltaTime / loopVolumeDelta); musicVolume = Mathf.Clamp01(musicVolume + Time.deltaTime / musicVolumeDelta); main.loopSource.volume = loopVolume * data.musicVolume; main.musicSource.volume = musicVolume * data.musicVolume; if (main.fastQueue > 0) { main.loopSource.pitch = main.musicSource.pitch = 2; } else { main.loopSource.pitch = main.musicSource.pitch = 1; } } }