61 lines
No EOL
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
} |