From d08aaab37d96f2241d1782a0bc72d1603d1ff2de Mon Sep 17 00:00:00 2001 From: tnoell Date: Sun, 6 Oct 2019 21:01:06 +0200 Subject: [PATCH] added fade possibility to backgroundmusic.cs --- Assets/Scripts/Audio/BackgroundMusic.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/Audio/BackgroundMusic.cs b/Assets/Scripts/Audio/BackgroundMusic.cs index 51c6d85..342a487 100644 --- a/Assets/Scripts/Audio/BackgroundMusic.cs +++ b/Assets/Scripts/Audio/BackgroundMusic.cs @@ -14,6 +14,7 @@ public class BackgroundMusic : MonoBehaviour { private bool inTransition = false; private int preTransitionSample = 0; private double lastUpdate = 0; + private float fadePerSecond = -1f; // Use this for initialization void Start () { @@ -34,10 +35,18 @@ public class BackgroundMusic : MonoBehaviour { if (AS[current].timeSamples != preTransitionSample) { inTransition = false; + AS[other].volume = 1; + fadePerSecond = -1; Debug.Log("Music transition complete, playing " + AS[current].clip.name + "\nSample new: " + AS[current].timeSamples + ", Sample old: " + AS[1-current].timeSamples + "\nCurrent global time: " + AudioSettings.dspTime + ", Last update at " + lastUpdate); } + if (fadePerSecond >= 0 && AS[1 - current].isPlaying) + { + AS[1 - current].volume -= fadePerSecond * Time.deltaTime; + } + + /*else { lastUpdate = AudioSettings.dspTime; @@ -72,7 +81,7 @@ public class BackgroundMusic : MonoBehaviour { "\nCurrent Global Time: " + AudioSettings.dspTime); } - public void TransitionTo(MusicObject target) + public void TransitionTo(MusicObject target, float fadeDuration = -1) { if (inTransition) { @@ -86,6 +95,12 @@ public class BackgroundMusic : MonoBehaviour { } inTransition = true; + + if (fadeDuration >= 0) + { + fadePerSecond = 1 / fadeDuration; + Play(target, AS[current].clip.samples + (int)(AS[current].clip.frequency * fadeDuration), 0); + } int iTarget; for (iTarget = 0; iTarget < currentMusic.targets.Length; iTarget++) //search for TransitionTarget that matches target -- GitLab