projet-massimo-pfe/PFE OmniVR/Assets/Scripts/MusicLoopController.cs
jimmy tremblay-Bernier 86fbe09b20 initial commit
2022-03-12 20:32:56 -05:00

52 lines
1.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MusicLoopController : MonoBehaviour
{
[SerializeField] private GameObject FirstLoopTrack;
[SerializeField] private GameObject OtherLoopsTrack;
private AudioSource FirstLoopAudio;
private AudioSource OtherLoopsAudio;
private void Awake()
{
FirstLoopAudio = FirstLoopTrack.GetComponent<AudioSource>();
OtherLoopsAudio = OtherLoopsTrack.GetComponent<AudioSource>();
}
private void OnEnable()
{
FirstLoopAudio.Play();
OtherLoopsAudio.PlayDelayed(FirstLoopAudio.clip.length);
}
public void ResumePlaying()
{
OtherLoopsAudio.Play();
}
public void FadeOut(float fadeTime)
{
//TODO Fade out the sound then stop both clips
StartCoroutine(DecreaseVolume(fadeTime));
}
private IEnumerator DecreaseVolume(float fadeTime)
{
float startVolume = FirstLoopAudio.volume;
while(FirstLoopAudio.volume > 0)
{
FirstLoopAudio.volume -= startVolume * Time.deltaTime / fadeTime;
OtherLoopsAudio.volume -= startVolume * Time.deltaTime / fadeTime;
yield return null;
}
FirstLoopAudio.Stop();
OtherLoopsAudio.Stop();
FirstLoopAudio.volume = startVolume;
OtherLoopsAudio.volume = startVolume;
}
}