using UnityEngine; using System.Collections.Generic; public class MusicManager : MonoBehaviour { public AudioClip intro; public AudioClip loop; public AudioClip outro; private AudioSource audioSource; private Queue clipsQueue; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { audioSource = GetComponent(); clipsQueue = new Queue(); // Intro is only played once, so we enqueue it first. clipsQueue.Enqueue(intro); ResetQueue(); } // Update is called once per frame void FixedUpdate() { if (audioSource.isPlaying == false) { audioSource.clip = clipsQueue.Dequeue(); audioSource.Play(); if(clipsQueue.Count == 0) { ResetQueue(); } } } private void ResetQueue() { clipsQueue.Enqueue(loop); clipsQueue.Enqueue(loop); clipsQueue.Enqueue(loop); clipsQueue.Enqueue(loop); clipsQueue.Enqueue(outro); } }