This repository has been archived on 2024-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
snakeinabox/Assets/Scripts/Render/Sound/Music.cs
2020-12-06 23:47:43 -08:00

61 lines
No EOL
1.3 KiB
C#

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;
}
}
}